【问题标题】:Retrieve the text from a JavaScript alert via Webdriver通过 Webdriver 从 JavaScript 警报中检索文本
【发布时间】:2014-09-27 04:27:45
【问题描述】:

我正在创建一系列 Webdriver 测试,其主要目的是确保 Web 应用程序页面的验证,所以这围绕着确保警报发生,但更重要的是显示的文本是正确的,因此正确的验证是被触发。

但是我似乎无法从警报中获取文本。

我似乎找不到任何有关从警报中检索文本的信息,并且所有研究都返回了如何简单地接受警报。

到目前为止我有:

UnhandledAlertException alertText = UnhandledAlertException.GetAlertText();

Assert.That(alertText, Is.EqualTo("You must select the user's Primary Role"));  

但“GetAlertText”无法识别,我不确定是否需要获取另一个文件并引用它,其中包含此函数,或者它根本不存在。

我很确定有一个内置的获取警报文本功能,但我似乎错了。

谢谢, -汤姆

【问题讨论】:

  • 你到底是从哪里得到UnhandledAlertException.GetAlertText();的?
  • @Arran 我认为这是为了使问题“合法”(因为他尝试了“某事”);)

标签: c# javascript selenium selenium-webdriver webdriver


【解决方案1】:

尝试使用这个 Alert 类。

public String getAlert()
{
    Alert alert = driver.switchTo().alert();
    String alertText = alert.getText();
    alert.accept();
    return alertText;
}

会从java script Alert函数返回Alert的文本信息。

如果警报与某种看起来像错误但弹出窗口的 js 框架有关,则使用 xpath 获取该定位器的文本。

【讨论】:

  • 谢谢,这有帮助,这正是我所需要的,只是它的“IAlert”而不是“Alert”、“SwitchTo”而不是“switchTo”和“alert.Text”而不是“alert.text” ",所以:IAlert alert = _driver.SwitchTo().Alert();字符串 alertText = alert.Text;我不确定我的 webdriver 引用是否略有不同,或者它们是拼写错误,但非常感谢。
  • 如果它有效,您应该接受答案。这将有助于其他人参考
【解决方案2】:

如果您确定警报是 JavaScript,则可以获得如下警报文本

string alertText = ((OpenQA.Selenium.IAlert)driverObj).Text;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 2023-04-01
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多