这是一段代码(新标签不会打开):
//open new tab in Chrome
browser.actions().sendKeys(protractor.Key.CONTROL +'t').perform();
如果我们使用带有 'a' 的代码 - 一切都很好:
//select all on the page
browser.actions().sendKeys(protractor.Key.CONTROL +'a').perform();
Protractor v.1.3.1
Chrome v.37
ChromeDriver v.2.10
WebDriver v.2.43
最佳答案
如果你真的不想向你的 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()
返回一个 promise 本身,可以只需利用 promise 的成功。
另外,我观察到,虽然浏览器的焦点似乎已经转移到新打开的选项卡上,但我无法访问新选项卡的元素。为此:
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.
关于javascript - 如何使用 Protractor 和 Chrome 浏览器打开新标签页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26098593/