如何使用量角器获取新打开的选项卡URL

时间:2015-09-22 13:52:44

标签: javascript angularjs google-chrome automated-tests protractor

您好我在点击链接后尝试从新标签页中获取网址,并检查我是否获得了预期值。我无法弄清楚如何做到这一点,因为我在chrome执行时遇到了这个错误:

Failed: null value in entry: name=null

在Firefox中,测试通过,但有趣的是它在新窗口中打开了target = _blank而不是新标签...

这是我的代码:

var scrollBar = require("./lib/scroll_bar");

describe("WAM home blog tests", function() {

    var URL = 'http://dev.wam.com.es';

    beforeEach(function() {
        browser.driver.manage().window().maximize();
        browser.get(URL);
    });

    it("Should find blog section after scrolling", function() {
        scrollBar.doScroll(0, 1800);
        expect( $("#blog-panel").isPresent() ).toBe(true);
    });

    it("Should redirect to blog after click on link", function() {
        var EC = protractor.ExpectedConditions;

        scrollBar.doScroll(0, 1800);
        element.all( by.css('div.blog-post > a') ).first().click();

        browser.ignoreSynchronization = true;
        browser.getAllWindowHandles().then(function (handles) {
            console.log(handles);
            browser.switchTo().window(handles[1]);
            var header = element(by.id("header"));
            browser.wait(EC.visibilityOf(header), 15000);
            expect(browser.driver.getCurrentUrl())
                .toMatch(/^http:\/\/blog.wam.tv\/.*/);
            browser.driver.close();
            browser.driver.switchTo().window(handles[0]);
        });
    });

    afterEach(function() {
        browser.ignoreSynchronization = false;
    });

});

1 个答案:

答案 0 :(得分:1)

您可以通过SHIFT +点击在新浏览器窗口中打开链接:

var elm = element.all( by.css('div.blog-post > a') ).first();
browser.actions().mouseMove(elm).keyDown(protractor.Key.SHIFT).click().keyUp(protractor.Key.SHIFT).perform();

在类似的情况下,这对我有所帮助。