无法使用量角器在新选项卡中打开firefox

问题描述 投票:0回答:1

我正在使用量角器在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:tooly 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);
}

还有其他alt用于在firefox中使用量角器打开新标签吗?

我尝试了下面的回答,但是它会抛出。未定义错误。

   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个回答
0
投票

对于你的第二种方式,我认为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");
© www.soinside.com 2019 - 2024. All rights reserved.