C# Selenium:如何识别if语句中的元素?

C# Selenium:如何识别if语句中的元素?,c#,visual-studio,selenium,if-statement,C#,Visual Studio,Selenium,If Statement,在VisualStudio中使用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

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

如果元素不在DOM中,则在使用
FindElement
时,它将抛出
NoTouchElementException

尝试使用返回列表的
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
 }

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