【问题标题】:Unable to open firefox in new tab using protractor无法使用量角器在新选项卡中打开 Firefox
【发布时间】:2017-12-30 16:46:51
【问题描述】:

我正在使用量角器在 chrome、firefox 和 IE 中运行我的 E2E 案例。

以下代码在 chrome 中运行良好 - 打开新标签并点击 google.com

let url = "https://google.com";
return browser.executeScript("return window.open(arguments[0], '_blank')", url);

对于 firefox,新标签页已打开,但未点击 google.com,标签页立即关闭并出现错误 - “AssertionError: WebDriverError: InternalError: too much recursion”

我也尝试了下面的代码。它在 chrome 中运行良好,但在 firefox 中运行良好。

function openNewTab(linkname) {
return browser.driver.executeScript(function (arguments) {
    var linkname = arguments;
    (function (link) {
        document.body.appendChild(link);
        link.setAttribute('href', linkname);
        link.dispatchEvent((function (e) {
            e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
            return e;
        }(document.createEvent('MouseEvents'))))
    }(document.createElement('a')));
}, linkname);
}

还有其他的替代方法可以使用量角器在 Firefox 中打开新标签吗?

我尝试了 yong 的以下回答,但它随后抛出了。未定义错误。

   function openNewTab(linkname) {
   browser.driver.executeScript(function(arguments) {
        var linkname = arguments;
    var d = document,
        a = d.createElement('a');
    a.target = '_blank';
    a.href = linkname;
    a.innerHTML = '.';
    d.body.appendChild(a);
    a.click();
}, linkname)
};

【问题讨论】:

    标签: javascript firefox browser protractor


    【解决方案1】:

    对于您的第二种方式,我认为 firefox 失败的原因是 firefox 不支持 dispatchEvent() 或 initMouseEvent() 或 createEvent()。

    你可以试试下面的代码:

    browser.driver.executeScript(function (url) {
            var d = document,
                a = d.createElement('a');
            a.target = '_blank';
            a.href = url;
            a.innerHTML = '.';
            d.body.appendChild(a);
            a.click();
        }, "https://google.com");
    

    【讨论】:

    • 您好我已经尝试过您的代码,但我缺少一些参数。我已经编辑了我的实际代码,您可以根据我的问题进行修改吗?什么是 这里?param?还是 cmets?
    猜你喜欢
    • 2019-08-04
    • 2020-09-02
    • 2018-02-01
    • 1970-01-01
    • 2014-01-10
    • 2014-10-29
    • 2017-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多