3

在 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 作为条件,或者我做错了什么?

4

2 回答 2

3

如果元素不存在于 DOM 中,那么NoSuchElementException在使用findElement.
尝试使用findElementswhich 返回一个列表。然后检查列表是否为空。这样您就不必处理异常。

尝试这个:

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
 }
于 2019-06-19T10:03:42.017 回答
1

'If' 需要一个布尔表达式,而不是布尔表达式,'FindElement' 返回一个 webElement。因此,您会遇到编译时错误。

于 2019-06-19T11:00:06.957 回答