Jasmine 如何在量角器中获取点击提交按钮下一页的url?

Jasmine 如何在量角器中获取点击提交按钮下一页的url?,jasmine,protractor,Jasmine,Protractor,我能够运行测试代码并提交表单。我需要下一页的url时,提交按钮是点击。我需要得到下一页的url时,提交按钮被单击。但我现在得到了第一页的URL。 我的代码: describe('Pmts app 5.0',function(){ var LoginPage = require("./LoginPO"); it('login test', function(){ LoginPage.setUserName('xyz@test.com'); LoginPage.setPassWord('test')

我能够运行测试代码并提交表单。我需要下一页的url时,提交按钮是点击。我需要得到下一页的url时,提交按钮被单击。但我现在得到了第一页的URL。 我的代码:

describe('Pmts app 5.0',function(){
var LoginPage = require("./LoginPO");
it('login test', function(){
LoginPage.setUserName('xyz@test.com');
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');
})
或者,你也可以进行一次露骨的苦睡:

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');
        })
试试这个:

describe('Pmts app 5.0',function(){
    ptor = protractor.getInstance();
    var LoginPage = require("./LoginPO");

    it('login test', function(){
        LoginPage.setUserName('xyz@test.com');
        LoginPage.setPassWord('test');
        LoginPage.clickButton();
        ptor.sleep(1000); 
        expect(browser.getCurrentUrl()).toEqual('https://localhost:1234/#/timesheet');
    });
});
如果您的应用程序基于Angular.js,请不要使用browser.sleep(number),而是使用browser.waitForAngular()

使用硬编码依赖项从来都不是一个好主意


我注意到,时间量角器需要加载整个页面。因此,请使用browser.waitForAngular()或在browser.sleep()中设置一个较高的数字。

我尝试了此解决方案,但当我在代码中使用“ptor=dragrator.getInstance();”时,它显示了错误:“TypeError:undefined不是函数”请尝试以下操作:var ptor=browser;输入sleep值的前提是该值总是正确的。不可能总是假定某些睡眠值是正确的。e、 g.相同的测试用于1000000个用户的负载测试。。。始终使用等待条件,因为这与事件告诉您下一步准备就绪的时间是一样的。