使用 webdriver 从 javascript 警报中获取文本元素
Posted
技术标签:
【中文标题】使用 webdriver 从 javascript 警报中获取文本元素【英文标题】:Get text element from a javascript alert using webdriver 【发布时间】:2014-03-25 23:49:26 【问题描述】:我在 c# 中使用 selenium webdrive 来学习和编写自动化测试,我遇到过这种情况:
假设您有一个这样的网站:http://referencewebapp.qaautomation.net/register.php,然后您会收到带有错误消息的弹出窗口作为 javascript 警报(例如,如果您在未填写任何信息的情况下按注册)。我需要做的是检查警报中的错误消息(文本)。
我无法使用 driver.FindElement 或 drive.PageSource,因为我看不到它的源代码。我读到了关于尝试选择/更改框架(Selenium cannot get alert thrown in iframe),但我不知道 frameID 是如何。有什么办法可以找到并检查该文本吗?
感谢您的任何建议。
【问题讨论】:
【参考方案1】: driver.SwitchTo().Alert().Text;
应该是你所需要的。
【讨论】:
非常感谢!完成了这项工作!【参考方案2】:您可以尝试使用 selenium Alert 对象获取警报(对话框)的文本。
例如:
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
if (alertText.equals("error..."))
// Do Something...
// dismiss alert
alert.dismiss();
更多信息在selenium 2.0 documentation.
【讨论】:
谢谢,这很有帮助!以上是关于使用 webdriver 从 javascript 警报中获取文本元素的主要内容,如果未能解决你的问题,请参考以下文章
如何获取由 Javascript 使用 Java / Webdriver 生成的网页的整个源 html 代码?
如何使用带有 IEDriver 的 webdriver 处理 javascript 警报