单击Alert(Selenium IDE)中的OK按钮

65 selenium alert selenium-ide

我需要使用Selenium命令单击警报窗口内的"确定"按钮.我已经尝试过assertAlert,verifyAlert但他们没有做我想做的事.

单击"确定"按钮是否可能?如果是这样,有人能为我提供Selenium IDE命令的示例吗?

amr*_*mra 52

试试Selenium 2.0b1.它与第一个版本的核心不同.它应该根据文档支持弹出对话框:

弹出对话框

从Selenium 2.0 beta 1开始,内置支持处理弹出对话框.在您触发并打开弹出窗口的操作后,您可以使用以下命令访问警报:

Java的

Alert alert = driver.switchTo().alert();
Run Code Online (Sandbox Code Playgroud)

红宝石

driver.switch_to.alert
Run Code Online (Sandbox Code Playgroud)

这将返回当前打开的警报对象.使用此对象,您现在可以接受,关闭,读取其内容,甚至可以输入提示.此界面在警报,确认和提示方面同样有效.有关更多信息,请参阅JavaDocs.

  • 有没有办法从selenium ide? (4认同)
  • 这个答案不适用于帖子中提到的IDE. (3认同)

小智 41

要单击警告框中的"确定"按钮:

driver.switchTo().alert().accept();
Run Code Online (Sandbox Code Playgroud)


Pet*_*ček 10

这是2012年的一个答案,问题是从2009年开始,但人们仍然关注它,并且只有一个正确(使用WebDriver)和一个几乎有用(但不够好)的答案.


如果您正在使用Selenium RC并且实际上可以看到警报对话框,则无法完成.Selenium应该为你处理它.但是,正如Selenium文档中所述:

Selenium试图隐藏这些对话框(通过替换window.alert,window.confirm和window.prompt),这样它们就不会停止执行你的页面.如果您看到一个警告弹出窗口,可能是因为它在页面加载过程中被触发,这对于我们保护页面来说通常为时尚早.

这是Selenium RC的一个已知限制(因此也是Selenium IDE),也是Selenium 2(WebDriver)开发的原因之一.如果要处理onloadJS警报,则需要使用WebDriver 警报处理.

也就是说,你可以使用Robotselenium.keyPressNative()填写任何文字,然后按下Enter并盲目确认对话框.这不是最干净的方式,但它可以工作.但是,您将无法获得该alert消息.

Robot将所有有用的键映射到常量,这样很容易.有了keyPressNative(),你要使用10的值紧迫Enter27Esc,因为它的工作原理与ASCII码.


Han*_*Gay 2

您可能会查看chooseOkOnNextConfirmation,尽管如果我正确阅读文档,这可能应该是默认行为。