【问题标题】:Selenium: How to identify element within a if statement?Selenium:如何识别 if 语句中的元素?
【发布时间】:2019-11-02 00:32:51
【问题描述】:

在 Visual Studio 中使用 Selenium。我正在编写一个测试用例,我首先需要查看特定元素是否存在,然后才能继续。

当我尝试在这样的 if 语句中识别一个元素时:

  if (driver.FindElement(By.XPath("//lina-device-information/div[1]/div[2]/lina-list-wrapper[3]/div/div/lina-insurance-information")))
{
//Do stuff
}
else
{
//End test
}

我收到一个错误:“错误 CS0029 无法将类型 'OpenQA.Selenium.IWebElement' 隐式转换为 'bool'”

是否可以在 if 语句中使用 FindElement 作为条件,或者我做错了什么?

【问题讨论】:

    标签: c# visual-studio selenium if-statement


    【解决方案1】:

    如果元素不存在于 DOM 中,则在使用 findElement 时将抛出 NoSuchElementException
    尝试使用返回列表的findElements。然后检查列表是否为空。这样您就不必处理异常。

    试试这个:

    if (driver.FindElements(By.XPath("//lina-device-information/div[1]/div[2]/lina-list-wrapper[3]/div/div/lina-insurance-information")).Count > 0)
     {
     // Do stuff
     // Element found
     }
     else{
     // Element not found
     }
    

    【讨论】:

      【解决方案2】:

      'If' 需要一个布尔表达式,而不是布尔值,'FindElement' 返回一个 webElement。因此你会被抛出一个编译时错误。

      【讨论】:

        猜你喜欢
        • 2017-09-05
        • 2012-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-13
        • 2020-02-15
        • 1970-01-01
        相关资源
        最近更新 更多