2017-06-04 39 views
0

我已经尝试了不同的选项只是为了打开新标签,但所有这些导致相同的结果:发送字符“t”谷歌搜索字段。 我真正的测试目标是在浏览器中切换标签,但我甚至无法打开新标签。无法创建或切换到与在MAC上的JAVA Selenium Webdriver新标签

非常简单的测试

public class LoginPhp2 { 

     @Test 
     public void testGoogle() { 
      WebDriver driver = new SafariDriver(); 
      driver.get("https://www.google.com"); 
      //driver.findElement(By.cssSelector("body")).sendKeys(Keys.COMMAND + "t"); 
      Actions action= new Actions(driver); 
      action.keyDown(Keys.COMMAND).sendKeys("t").build().perform(); 
      //action.keyDown(Keys.COMMAND).sendKeys("t").keyUp(Keys.COMMAND).build().perform(); 


     } 
    } 
+0

所以第一个带焦点的dom元素是搜索输入?尝试先模糊它? – Tim

+0

尝试使用javascriptexecutor。 https://troubleshootblog.com/2014/11/06/selenium-opening-a-new-tab-in-browser-firefox-chrome-or-safari/ – coolswastik

回答

1

您可以使用JavaScript来打开一个新标签。

JavascriptExecutor js =(JavascriptExecutor)driver;
js.executeScript(“window.open();”);

+0

我相信这会打开新窗口,但不是新标签页在同一窗口中 –

+0

这将在同一窗口中打开新选项卡 –

+0

仍然没有帮助;( –

0

在Windows和Mac中打开新选项卡有多种不同的方式。发送的实际密钥取决于您的操作系统,例如,Mac使用COMMAND + t而不是CONTROL + t。

可以使用在Mac打开新的标签页:

driver.findElement(By.cssSelector("body")).sendKeys(Keys.COMMAND +"t"); 

此之后,你可以切换到任何打开的选项卡:

ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles()); 
driver.switchTo().window(tabs.get(0)); 
+0

谢谢,我已经试过了。 –

0

我也跟着提出这一方法早:

JavascriptExecutor js =(JavascriptExecutor)驱动程序;
js.executeScript(“window.open();”);

这是在同一个窗口中打开新选项卡。我试过在我的MAC机上

相关问题