2017-12-27 49 views
0

Ich benutze Winkelmesser, um meine E2E Fällen in Chrome, Firefox und IE zu starten.Firefox kann nicht in neue Registerkarte mit Winkelmesser öffnen

Below Code funktioniert in Chrom fein - öffnet neuen Tab und trifft google.com

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

für Firefox, neuen Tab geöffnet wird gettng aber google.com nicht getroffen wird und Tab schließt sofort mit Fehler - "AssertionError : WebDriverError: InternalError: zu viel Rekursion "

Ich habe auch unten Code als auch versucht.Es funktioniert gut in Chrom, aber nicht in 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); 
} 

Gibt es noch andere alt für das Öffnen neuer Registerkarte in Firefox mit Winkelmesser?

Ich versuchte als Antwort unten durch yong aber es wirft dann. ist kein Fehler definiert.

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) 
}; 

Antwort

0

Für Ihre sencond Art und Weise, ich glaube, die Ursache für firefox scheitern wird Firefox nicht dispatch() oder initMouseEvent() oder create() unterstützen.

können Sie unter Code versuchen:

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"); 
+0

Hallo Ich habe ur-Code versucht, aber im einigen parameter.I fehlt meinen eigentlichen Code bearbeiten, kann u ändern bitte nach meiner Frage? und was ist hier? param? oder Kommentare? – Nalu

Verwandte Themen