0

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

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 有覆盖浏览器行为的限制。

4

1 回答 1

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

也就是说,您希望在测试中打开一个新窗口的任何具体原因?

于 2015-07-01T12:10:56.103 回答