使用Selenium Webdriver打开新的私有窗口以进行跨浏览器测试

时间:2015-07-01 00:04:12

标签: selenium selenium-webdriver browserstack

在我的脚本中,我打开浏览器的私人窗口以验证网站中的某些内容。以下是示例代码:

if(osName.contains("Mac")){
    new Actions(tester.getInternalDriver()).keyDown(Keys.COMMAND).keyDown(Keys.SHIFT).sendKeys("P").keyUp(Keys.COMMAND).keyUp(Keys.SHIFT).build().perform();
}
else if (osName.contains("Win") || osName.contains("nux")){
    String pvtWin = Keys.chord(Keys.LEFT_CONTROL,Keys.SHIFT,"p");
     tester.getInternalDriver().findElement(By.cssSelector("body")).sendKeys(pvtWin);
}

当我在本地(mac)计算机上执行这些测试用例或Jenkins在Windows服务器上本地执行时,以前的代码工作正常。 但现在,当我在browserstack虚拟机上运行脚本时,我面临的挑战。我的本地计算机是Mac,当我尝试在Windows(虚拟)计算机上运行时,它会尝试在键盘上查找COMMAND按钮并且测试用例失败。有没有更好的方法(javascript?)打开可以在任何平台和任何浏览器上运行的新私人窗口? 我正在寻找一个选项来打开新标签,新窗口&新的私人窗口。我知道javascript有超越浏览器行为的限制。

1 个答案:

答案 0 :(得分:0)

您可以执行以下JavaScript,在Selenium测试中打开一个新窗口。

JavascriptExecutor js = null;
 if (driver instanceof JavascriptExecutor) 
js = (JavascriptExecutor)driver;
String scr = "window.open('https://www.google.com','_blank');";
js.executeScript(scr);

那就是说,你想在测试中打开一个新窗口的具体原因是什么?