在我的脚本中,我打开浏览器的私人窗口以验证网站中的某些内容。以下是示例代码:
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有超越浏览器行为的限制。
答案 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);
那就是说,你想在测试中打开一个新窗口的具体原因是什么?