3

我正在用 ChromeDriver 尝试 Selenium 来自动化一些音频/视频测试。但是当我用我的应用程序启动 Chrome 浏览器时,它会问我一个问题 http:... 想要使用你的相机和麦克风 允许拒绝选项 我想点击允许并继续在网站上编写脚本。但如果不选择允许,我将无法继续。不幸的是,Chrome 以一种非 DOM 格式弹出这个问题,我无法以明显的方式执行 driver.findElement 并在“允许”选项上单击“单击”来响应。你们中有人遇到过这种情况吗?处理这种情况的最佳方法是什么?

干杯!——布赖恩

4

2 回答 2

1

请参阅此答案(打印对话框)或此答案(“运行方式...”对话框)。

不同的对话框,但是原因(总之WebDriver不能处理这些对话框)和可能的解决方案是完全一样的:

  • 该类允许您以编程方式“按”键盘上的任何内容(或盲目单击),因此可以通过按orRobot来摆脱对话框。但是,如上所述,任何高级交互都取决于操作系统/语言/打印机。EnterEsc

    // press Escape programatically - the print dialog must have focus, obviously
    Robot r = new Robot();
    r.keyPress(KeyEvent.VK_ESCAPE);
    r.keyRelease(KeyEvent.VK_ESCAPE);
    

    当然,您也可以通过此类键入任何内容。

  • 自动车。它是一个 Windows 程序,可用于处理任何系统级自动化。与上述相同的依赖关系。

请注意(据我所知)您无法真正检查对话框是否出现,因此如果它在没有摄像头的计算机上运行,​​您将无法捕捉到可能的错误......

于 2012-07-20T13:32:32.473 回答
1

如果您使用的是ChromeDriver,您可以使用任何“本机”弹出窗口

Alert popup = webDriver.switchTo().alert();
// here you can examine the text within the alert using popup.getText();
popup.accept();
于 2012-09-13T16:15:34.133 回答