我需要使用 Selenium 命令点击警告窗口中的“确定”按钮。我尝试使用 assertAlert
或 verifyAlert
,但它们不能实现我想要的功能。
是否有可能点击“确定”按钮?如果可以,请有人提供一个 Selenium IDE 命令的示例吗?
我需要使用 Selenium 命令点击警告窗口中的“确定”按钮。我尝试使用 assertAlert
或 verifyAlert
,但它们不能实现我想要的功能。
是否有可能点击“确定”按钮?如果可以,请有人提供一个 Selenium IDE 命令的示例吗?
尝试使用 Selenium 2.0b1,它与第一个版本有不同的核心。根据文档,应该支持弹出对话框:
从 Selenium 2.0 beta 1 开始,内置了处理弹出对话框的支持。在触发打开弹出窗口的操作后,可以使用以下方法访问警告框:
Java
Alert alert = driver.switchTo().alert();
Ruby
driver.switch_to.alert
这将返回当前打开的警报对象。使用此对象,您现在可以接受、忽略、阅读其内容甚至输入一个提示。该界面在警报、确认和提示上同样有效。有关更多信息,请参见JavaDocs。
点击警告框中的“确定”按钮:
driver.switchTo().alert().accept();
这是一个2012年的回答,问题来自2009年,但人们仍然在查看它,只有一个正确的答案(使用WebDriver
),还有一个几乎有用但不够好的答案。
话虽如此,您可以使用Robot
或selenium.keyPressNative()
填写任何文本并按下Enter并盲目确认对话框。这不是最干净的方法,但它可能有效。但您将无法获取alert
消息。
Robot
将所有有用的键映射到常量,因此这将很容易。使用keyPressNative()
时,要使用10
作为按下Enter或27
作为Esc的值,因为它与ASCII代码一起使用。
storeEval | alert("This is alert box") |
storeEval | prompt("This is prompt box. Please enter the value") | text
storeEval | confirm("this is cofirm box") |
1| 打印弹出警报文本并关闭-I
Alert alert = driver.switchTo().alert();
System.out.println(closeAlertAndGetItsText());
2| 打印警报弹出框文本并关闭 -II
Alert alert = driver.switchTo().alert();
System.out.println(alert.getText()); //Print Alert popup
alert.accept(); //Close Alert popup
3 | 断言弹出窗口的文本内容并关闭
Alert alert = driver.switchTo().alert();
assertEquals("Expected Value", closeAlertAndGetItsText());
alert()
替换为自己的版本,只捕获给定用于验证的消息。alert()
,因为它需要使用自己的版本来修补被测试窗口中的函数。使用警报界面,首先使用switchTo()
到警报,然后使用accept()
点击“确定”或使用dismiss()
取消它
Alert alert_box = driver.switchTo().alert();
alert_box.accept();
Alert alert_box = driver.switchTo().alert();
alert_box.dismiss();
selenium.chooseOkOnNextConfirmation(); // prepares Selenium to handle next alert
selenium.click(locator);
String alertText = selenium.getAlert(); // verifies that alert was shown
assertEquals("This is a popup window", alertText);
...