下面是一個代碼我打開一個新的標籤(新標籤不開放)如果我們以「」使用的代碼 - 一切都很好:如何可以用量角器和Chrome瀏覽器
所有//選擇頁面
browser.actions().sendKeys(protractor.Key.CONTROL +'a').perform();
量角器V.1.3.1
鉻V.37
ChromeDriver V.2.10
webdriver的v.2.43
下面是一個代碼我打開一個新的標籤(新標籤不開放)如果我們以「」使用的代碼 - 一切都很好:如何可以用量角器和Chrome瀏覽器
所有//選擇頁面
browser.actions().sendKeys(protractor.Key.CONTROL +'a').perform();
量角器V.1.3.1
鉻V.37
ChromeDriver V.2.10
webdriver的v.2.43
硒不提供一種方式來做到這一點所以解決方法似乎是唯一的方法。 假設你在Windows或Linux的時候,您的CTRL + T想法應該寫成下面,但是該黑客失敗對我來說:
browser.actions().keyDown(protractor.Key.CONTROL).sendKeys('t').perform();
甚至試圖做一個元素:
$$('input').first().sendKeys(protractor.Key.chord(protractor.Key.CONTROL, "t"));
好消息是下面的技巧似乎工作,你要打開隨時與網址替換掉location.href
:
browser.driver.executeScript(function() {
(function(a){
document.body.appendChild(a);
a.setAttribute('href', location.href);
a.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')));
});
我覺得跟「打開一個新的TA問題B」在ChromeDriver,我發現這樣的錯誤: https://code.google.com/p/chromedriver/issues/detail?id=903&q=new%20tab&colspec=ID%20Status%20Pri%20Owner%20Summary
如果你真的不想要的元素添加到您的DOM,那麼你可以試試這個:
let url = https://google.com;
return browser.executeScript("return window.open(arguments[0], '_blank')", url);
//opens google.com in a new tab (works fine with Chrome. P.S. have only tested
// Chrome with Protractor).
我試過了以上陳述與browser.wait()
,看你是否真的需要等待,因爲browser.executeScript()
本身就會回報承諾,只能利用承諾的成功。
此外,我觀察到,儘管瀏覽器的焦點似乎已改變爲新打開的選項卡,但我無法訪問新選項卡的元素。要做到這一點:
browser.getAllWindowHandles().then((handles) => {
browser.switchTo().window(handles[1]); // pass the index, here assuming that
// there are only two tabs in the browser
})
要了解更多關於window.open()
,您可以訪問this.
尼斯,獅子座。我嘗試了前兩個,但也失敗了......不知道第三個。謝謝! – Brine 2014-09-29 21:22:08
第三個是我的作品。只需添加a.setAttribute('target','blank'); – 2016-01-20 10:41:14