jasmine - 如何获取Protractor中单击提交按钮的下一页的url?

标签 jasmine protractor

我能够运行测试代码并且能够提交表单。单击提交按钮时我需要下一页的网址。单击提交按钮时,我需要获取下一页的网址。但我得到了第一页的 currenturl 。 我的代码:

describe('Pmts app 5.0',function(){
var LoginPage = require("./LoginPO");
it('login test', function(){
LoginPage.setUserName('<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="631b1a1923170610174d000c0e" rel="noreferrer noopener nofollow">[email protected]</a>');
LoginPage.setPassWord('test');
LoginPage.clickButton();
    expect(browser.getCurrentUrl()).toEqual('https://localhost:1234/#/timesheet');
});
});

单击提交按钮后,浏览器立即关闭,并且不等待下一页加载。提交按钮后,它应该等到下一页加载,并且我需要下一页的 url...

最佳答案

按如下方式表述:

LoginPage.clickButton().then(function(){ expect(browser.getCurrentUrl()).toEqual('https://localhost:1234/#/timesheet');
})

或者你可以进行明确的硬性 sleep :

browser.sleep(time in ms)

或者您可以放置​​ browser.wait() 来等待下一页上出现的某些元素:

        browser.wait(function(){
           return elem.isPresent()
        },time in ms).then(function(){     
     expect(browser.getCurrentUrl())
.toEqual('https://localhost:1234/#/timesheet');
        })

关于jasmine - 如何获取Protractor中单击提交按钮的下一页的url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31718064/

相关文章:

javascript - 使用 requireJs 在 Jasmine 中模拟匿名模块调用

javascript - Knockout.js ReferenceError - 无法解析绑定(bind) $data 未定义

unit-testing - Gradle Task失败,因为JSHint检测到代码方面的改进

angular - Jasmine Angular 测试有时通过有时不通过,具体取决于 Describe 前缀

azure - 在 Azure Devops CI/CD 管道中为 MS Edge 浏览器运行 Protractor E2E 测试

typescript - 在没有 "webdriver-manager start"的情况下运行 Protractor 测试

selenium - 无法在 Protractor 和 CoffeeScript 中访问 WebDriverJS 等待 'until'

javascript - Protractor - 如何验证元素不可见

unit-testing - 如何让 jasmine 模拟数组的值?

javascript - 在 Protractor 中循环遍历 promise 的键/值对