代码之家  ›  专栏  ›  技术社区  ›  Moss Collum

从硒中卸载事件之前的测试

  •  11
  • Moss Collum  · 技术社区  · 16 年前

    我正在为一个网页编写Selenium测试,该网页使用onBeforeUnload事件在用户离开之前提示用户。Selenium似乎无法识别出现的确认对话框,也无法提供单击“确定”或“取消”的方法。有什么办法吗?我使用Java硒驱动程序,如果这是相关的。

    4 回复  |  直到 10 年前
        1
  •  3
  •   Thom    16 年前

    您可以编写一个用户扩展名(或者只是storeeval等中的一些javascript),在设置window.onbeforeunload之前对其进行测试,然后在从页面继续之前将其替换为空。很难看,但应该把你从书页上弄下来。

        2
  •  0
  •   anjanb    16 年前

    警告:这提供了另一种解决方案

    瓦蒂杰 http://watij.com/ --可以在这里帮忙。或者如果你对Ruby很满意,Watir可以帮你-- http://wtr.rubyforge.org/install.html

        3
  •  0
  •   dpavlin    16 年前

    当我面对使用硒的浏览器控制有限时,我转向 MozLab 插件解决了我的问题,如果只有一个浏览器平台。

        4
  •  0
  •   Louis    10 年前

    我只是为了我的申请做了这件事 onbeforeunload 如果用户在文档处于未保存状态时离开页面,则处理程序将显示一个提示。Python代码:

    driver.switch_to.alert.accept()
    

    Java等价物将是:

    driver.switchTo().alert().accept();
    

    如果警报不存在,则上述代码将失败,并显示 NoAlertPresentException 所以在接受提示之前不需要单独的测试来检查是否存在。

    我正在运行Selenium 2.43.0,但我认为这已经可行了一段时间了。

    如果我根本不希望出现提示,因为这不是我要测试的,我会在浏览器中运行自定义javascript来设置 window.onbeforeunload null 离开页面前。我把它放在测试拆卸代码中。