首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Selenium3 WebDriver与Java一起打开一个新的选项卡Chrome和Firefox?

如何使用Selenium3 WebDriver与Java一起打开一个新的选项卡Chrome和Firefox?
EN

Stack Overflow用户
提问于 2018-01-12 10:40:16
回答 3查看 2.4K关注 0票数 1

我对于Selenium 3在Firefox和Chrome中打开一个新选项卡有问题。

代码语言:javascript
复制
SeleniumTestBase.getDriver().findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"\t");

在Chrome和Firefox中不起作用。

我可以为Chrome使用以下代码,但对于Firefox,它可以打开新的Windows。

代码语言:javascript
复制
JavascriptExecutor js = (JavascriptExecutor) SeleniumTestBase.getDriver();
js.executeScript("window.open('http://localhost:8080/games.html#machine','_blank');");

我目前使用:

  • 硒-服务器-独立: 3.8.1
  • 显色剂: 2.34
  • 壁虎司机: 0.19.1

在此之前,非常感谢您。

Bes的问候,

萨莱

EN

回答 3

Stack Overflow用户

发布于 2019-08-20 08:34:49

我的解决方案,如果将来有人需要的话

代码语言:javascript
复制
driver.get('https://google.com')
last_handle = driver.current_window_handle
driver.execute_script('window.open("https://google.com", "new window")')
driver.switch_to.window(last_handle)
driver.close()
for i in driver.window_handles:
    driver.switch_to.window(i)
driver.get('https://google.com.ua/')
票数 4
EN

Stack Overflow用户

发布于 2018-01-12 11:59:25

  • 要在Firefox / Chrome / Internet Explorer中打开一个Chrome,可以使用以下代码块: ((JavascriptExecutor)驱动器).executeScript(“window.open(‘’,'_blank');");
  • 要通过http://localhost:8080/games.html#machine / Chrome / Internet ExplorerNew TAB中打开URL代码块,可以使用以下代码块: ((JavascriptExecutor) JavascriptExecutor)
票数 1
EN

Stack Overflow用户

发布于 2018-01-12 12:33:18

使用JavaScript在当前页面中插入一个链接DOM节点,然后单击它,最后删除它。不同的主浏览器应该支持DOM节点。

代码语言:javascript
复制
public newTab(String url) {
    String script = 
        "var d=document,a=d.createElement('a');" + 
        "a.target='_blank';a.href='%s';a.innerHTML='new tab';" + 
        "d.body.appendChild(a);" + 
        "a.click();a.parentNode.removeChild(a);";

    ((JavascriptExecutor) driver).executeScript(String.format(script, url));
}

请在浏览器的DevTool控制台选项卡中执行下面的javascript,如果它像预期的那样工作,那么上面的Java也应该可以工作。

代码语言:javascript
复制
var d=document,a=d.createElement('a');a.target='_blank';a.href='https://angularjs.org/';a.innerHTML='new tab';d.body.appendChild(a);a.click();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48224522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档