【问题标题】:How to open a new tab in the same browser by using Selenium WebDriver with Java?如何使用 Selenium WebDriver 和 Java 在同一浏览器中打开一个新选项卡?
【发布时间】:2012-08-27 09:15:08
【问题描述】:

我可以使用 Java 和 JavaScript 使用 Selenium WebDriver 打开一个新窗口。我正在使用火狐。代码如下:

WebDriver driver = new FirefoxDriver();
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("function createDoc(){var w = window.open(); w.document.open(); w.document.write('<h1>Hello World!</h1>'); w.document.close();}; createDoc();");

如何使用 WebDriver (Selenium 2) 在同一浏览器中打开新标签页?

【问题讨论】:

  • 你可以试试这个[使用javascript在新标签中打开网址][1] [1]:stackoverflow.com/q/4907843
  • @Hamon:我尝试了以下方法: jse.executeScript("function createDoc(url){window.open(url, '_blank');}; createDoc(this.href);");发生了同样的事情,即打开了一个新窗口而不是新标签[注意:我关心的是打开新标签,而不是新窗口]

标签: java selenium-webdriver


【解决方案1】:

瓦西姆,

cdriver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");

您可以使用上面的行在同一个浏览器中打开新标签(在 Firefox 中工作)

【讨论】:

  • 嗨,Suresh,这确实是一个更好的答案。它按我的意愿工作。谢谢
【解决方案2】:

在 JavaScript 或 HTML 中没有标准支持在选项卡和窗口中打开链接。这取决于浏览器和设置。某些浏览器默认在新标签页中打开(例如 Chrome 和 Safari)。一些浏览器允许用户配置行为。最重要的是,您不应该将您的网站设计为依赖于在选项卡中打开新窗口,因为没有可靠且跨浏览器兼容的机制可以做到这一点。

【讨论】:

  • 也就是说,打开新标签没有额外/附加代码,对吗?是否可以通过配置浏览器设置来做到这一点?
  • 某些浏览器允许您指定是否应在新窗口或新选项卡中打开新窗口(window.open 或 target="_blank")。例如,在 Firefox 中,您可以在 Tools->Options->Tabs 下进行设置。
  • 谢谢。我已经从 Tools->Options->Tabs 设置了 Tabs,但不幸的是 Selenium 2 (WebDriver) 无法打开新选项卡而不是新窗口
  • 就像我说的,这是不可预测的。关于这些设置,我不知道 Selenium 如何与 Firefox 交互。不要依赖于标签的一致行为,也不要在设计网站时期望它在打开新窗口时应该以一种或另一种方式表现。
【解决方案3】:

这主要取决于您的浏览器设置,并且没有单独的方法可以在新窗口或新标签中打开链接

【讨论】:

  • 如何配置浏览器以打开新标签页?
  • 在 Firefox 中转到选项,然后转到选项卡选项,然后选择在新选项卡中打开新窗口。
【解决方案4】:

这还取决于您的浏览器如何配置为打开弹出窗口。

【讨论】:

  • 如何配置浏览器打开弹窗?
猜你喜欢
  • 2018-08-14
  • 1970-01-01
  • 2013-07-07
  • 2018-02-12
  • 2015-03-25
  • 2018-02-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
相关资源
最近更新 更多