相关疑难解决方法(0)

量角器中的browser.ignoreSynchronization是什么?

我已经看过很多次人们建议使用它:

browser.ignoreSynchronization=true;  // or false
Run Code Online (Sandbox Code Playgroud)

但我不明白我们为什么需要它?

javascript testing end-to-end angularjs protractor

62
推荐指数
2
解决办法
5万
查看次数

如何使用量角器获取当前网址?

我正在使用量角器和茉莉花来测试一个网站.我想知道当前的网址,以验证测试.

我试过了

function waitForUrlToChangeTo(urlRegex) {
    var currentUrl;

    return browser.getCurrentUrl().then(function storeCurrentUrl(url) {
            currentUrl = url;
        }
    ).then(function waitForUrlToChangeTo() {
            return browser.wait(function waitForUrlToChangeTo() {
                return browser.getCurrentUrl().then(function compareCurrentUrl(url) {
                    return urlRegex.test(url);
                });
            });
        }
    );
}
Run Code Online (Sandbox Code Playgroud)

我正在以这种方式使用这个功能

it('should log', function() {
    //element(by.model('user.username')).sendKeys('asd');
    //element(by.model('user.password')).sendKeys('asd');
    element(by.linkText('Acceder')).click();
    waitForUrlToChangeTo("http://localhost:9000/#/solicitudes");
});
Run Code Online (Sandbox Code Playgroud)

javascript testing url angularjs protractor

30
推荐指数
3
解决办法
5万
查看次数

点击后打开非角度页面

我正在尝试实现以下测试场景:

  • 点击页面上的徽标
  • 断言打开了一个新的浏览器窗口(Chrome中的选项卡)并检查当前的URL

问题是在新浏览器窗口中打开的页面是非角度页面,而我正在执行点击的主页面角度页面.

这是我的第一次尝试:

it("should show logo", function () {
    var logo = scope.page.logo;
    expect(logo.isDisplayed()).toEqual(true);

    // opens a new page on click
    logo.click().then(function () {
        browser.getAllWindowHandles().then(function (handles) {
            browser.switchTo().window(handles[1]).then(function () {
                expect(browser.getCurrentUrl()).toEqual('http://myurl.com/');
            });

            // switch back to the main window
            browser.switchTo().window(handles[0]);
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

失败的是:

错误:等待量角器与页面同步时出错:"在窗口中找不到角"

这是可以理解的.

我的第二次尝试是使用ignoreSynchronization布尔标志:

browser.ignoreSynchronization = true;
logo.click().then(function () {
    browser.getAllWindowHandles().then(function (handles) {
        browser.switchTo().window(handles[1]).then(function () {
            expect(browser.getCurrentUrl()).toEqual('http://myurl.com/');
        });

        // switch back to the main window
        browser.switchTo().window(handles[0]);
    }); …
Run Code Online (Sandbox Code Playgroud)

javascript testing end-to-end angularjs protractor

14
推荐指数
1
解决办法
7215
查看次数

标签 统计

angularjs ×3

javascript ×3

protractor ×3

testing ×3

end-to-end ×2

url ×1