2017-06-04 38 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機上

相關問題