当前位置: 首页 > 知识库问答 >
问题:

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

姜飞飙
2023-03-14

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

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(虚拟)机器上运行某些东西时,它会尝试在键盘上查找命令按钮,测试用例失败。有没有更好的方法(javascript?)要打开可以在任何平台和浏览器上工作的新私有窗口?我正在寻找打开新选项卡、新窗口的选项

共有1个答案

陈寒
2023-03-14

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

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

也就是说,您希望在测试中打开新窗口的具体原因是什么?

 类似资料:
  • 问题内容: 我是angular js的新手,我希望在按下按钮后在浏览器的新窗口中打开PDF文档。 我在前端发出GET请求,在后端有一个Java Rest服务,该服务响应GET并生成PDF。我希望在浏览器中打开此PDF。 如果无法以这种方式打开PDF,那么至少要使用AngularJs打开任何PDF,我该怎么做? 这就是后端在其余服务中生成响应的内容。 问题答案: 如果您有这样的事情: 而是这样做:

  • 问题内容: 我正在尝试使用selenium for python在浏览器中打开一个新选项卡或一个新窗口。如果打开新的选项卡或新窗口并不重要,仅打开浏览器的第二个实例才很重要。 我已经尝试了几种不同的方法,但都没有成功。 切换到一个不存在的窗口,希望它在找不到该窗口时会打开一个新窗口: 通过打开的窗口进行迭代(尽管目前只有一个) 尝试模拟键盘按键 driver.send_keys(Keys.CONT

  • 语言-JAVA IDE-Eclipse工具-Selenium Web驱动程序

  • 问题内容: 我正在使用selenium中的webdriver和黄瓜中的红宝石来自动化网站的测试用例。我需要每个功能以特定顺序运行并使用相同的浏览器窗口。Atm的每个功能都会创建一个新的窗口来运行测试。尽管在某些测试案例中,这种行为是需要的,但在许多情况下却不是。到目前为止,从我的研究看来,在整个测试案例中,是否有可能使用selenium驱动相同的浏览器窗口,答案不一。我遇到的大多数答案都是针对其他

  • 我正在使用Selenium Java进行自动化测试。对于我的场景,首先打开登录页面,在提供凭据并单击登录按钮后,当前浏览器(带有登录页面)关闭,并打开一个带有主页的新IE窗口。在java代码中,我用登录页面url获得驱动程序,然后提供用户名和pwd,然后单击登录页面工作正常,但之后,当页面关闭和新的IE窗口打开时,我试图在主页上工作,我得到了noSuchWindowException或Null句柄

  • 问题内容: 我正在将Selenium WebDriver与Java和TestNG框架一起使用。我想一次在一个代码中使用Firefox,IE,Chrome来进行跨浏览器测试。我只能将Firefox初始化为 但无法以相同方式初始化其他浏览器。例如: 给出错误 给出错误 如何初始化IE和Chrome并在所有所需的浏览器中执行测试? 问题答案: 对于C# 加 创建一个包含浏览器名称的配置文件。实现与配置文