无法使用MAC上的JAVA在Selenium Webdriver中创建或切换到新选项卡

时间:2017-06-04 23:58:26

标签: java selenium selenium-webdriver

我尝试了不同的选项只是为了打开新标签,但所有这些选项都会导致相同的结果:将char“t”发送到Google搜索字段。 我真正测试的目标是在浏览器中切换标签,但我甚至无法打开新标签。

非常简单的测试

    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();


        }
    }

3 个答案:

答案 0 :(得分:1)

您可以使用javascript打开新标签页。

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

答案 1 :(得分: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));

答案 2 :(得分:0)

我遵循了之前建议的方法:

JavascriptExecutor js =(JavascriptExecutor)驱动程序;
js.executeScript(&#34; window.open();&#34);

这是在同一窗口中打开新标签页。我在我的MAC机器上试过它