我有一个selenium测试,通过selenium-grid上可用的浏览器实例测试站点的登录。这在使用firefox浏览器实例时工作正常,但在使用safari时,测试无法通过整个测试,因为safari弹出一个带有问题的窗口"您是否希望我保存此密码"。
它似乎不会显示为window_handle或警报。我怎么能让selenium解雇这个safari弹出窗口并继续测试呢?
答案 0 :(得分:2)
你做不到。 WebDriver无法与浏览器和/或特定于操作系统的对话框进行交互。
您可能有两种选择:
通过编程语言以编程方式按 Enter 或 Esc 。你没有指定你正在使用哪一个,所以这是一个Java示例:
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ESCAPE);
robot.keyRelease(KeyEvent.VK_ESCAPE);
这是一个黑客,但它是可靠的,这是我为克服类似问题所做的工作。
答案 1 :(得分:1)
尝试使用此代码,它使用JavaScript将密码更改为文本,这会停止弹出窗口:
driver.executeScript("Array.prototype.slice.call(document.getElementsByTagName('input')).forEach(function(e){e.type=e.type=='password'?'text':e.type;});");
答案 2 :(得分:0)
或者,您可以有选择地禁用特定域的密码捕获。您还可以通过清除用户名/密码的自动填充选项来完全禁用密码捕获。