量角器按钮单击并在新选项卡中打开页面

Sum*_*mit 9 angularjs protractor

我对Protractor相当新.我正在尝试自动化一个场景,我单击一个按钮,它在新选项卡中打开一个页面,然后我们需要在新页面中填写表单并提交.

问题:当我点击按钮打开新页面时.我的测试不会等待加载新页面并说测试完成和成功消息.

我使用该按钮的简单点击事件来单击按钮.

元素(by.id( "newPlan的")).点击()

我错过了什么吗?我需要做一些事情,以便我的测试等待新页面加载,然后我可以执行一些功能吗?

小智 28

您需要等到页面打开后才能使用回调.从这个意义上尝试一下:

    element(by.id("newPlan")).click().then(function () {
        browser.getAllWindowHandles().then(function (handles) {
            newWindowHandle = handles[1]; // this is your new window
            browser.switchTo().window(newWindowHandle).then(function () {
                // fill in the form here
                expect(browser.getCurrentUrl()).toMatch(/\/url/);
            });
        });
    });
Run Code Online (Sandbox Code Playgroud)

  • 如果加载新标签需要时间,则无效!句柄[1]是未定义的. (3认同)