【发布时间】:2020-05-22 12:13:25
【问题描述】:
根据 Apple 的 Safari Webdriver Doc,在运行自动化窗口时插入了一个玻璃窗格,以防止在用于 Webdriver 测试时与浏览器交互。有没有办法禁用这个玻璃窗格?
背景信息:
我想禁用这个玻璃窗格的原因是我有一个 nginx 身份验证弹出窗口,我想关闭它。(像这样在 url 中注入身份验证 -> https://username:password@restofurl.com 甚至在 Safari 中都不起作用)。
Selenium 的 Webdriver 解决方案:
Alert alert = webDriver.switchTo().alert();
alert.sendkeys("whatever"); //Does not work
所以我选择了一个不同的解决方案,即 AWT Robot,它在 Chrome 中运行良好,但在 Safari 中由于 Glass Pane 而无法运行:
try {
Robot robot = new Robot();
robot.mouseMove(820, 290);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
} catch(AWTException e) {
e.printStackTrace(); //Log exception
}
但不幸的是,这种方法通过与 Safari Webdriver 的玻璃窗格交互而中断了测试,因此这就是我要禁用它的原因。
提前致谢!
【问题讨论】:
标签: java selenium selenium-webdriver awtrobot safaridriver