有selenium与safari“商店密码”弹出窗口相互作用吗?

时间:2013-07-15 09:03:10

标签: selenium safari

我有一个selenium测试,通过selenium-grid上可用的浏览器实例测试站点的登录。这在使用firefox浏览器实例时工作正常,但在使用safari时,测试无法通过整个测试,因为safari弹出一个带有问题的窗口"您是否希望我保存此密码"。

它似乎不会显示为window_handle或警报。我怎么能让selenium解雇这个safari弹出窗口并继续测试呢?

3 个答案:

答案 0 :(得分:2)

你做不到。 WebDriver无法与浏览器和/或特定于操作系统的对话框进行交互。

您可能有两种选择:

  1. 首次完成测试时手动保存/取消密码,然后reuse the profile every time
  2. 通过编程语言以编程方式按 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)

或者,您可以有选择地禁用特定域的密码捕获。您还可以通过清除用户名/密码的自动填充选项来完全禁用密码捕获。