C# Selenium:如何识别if语句中的元素?
在VisualStudio中使用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
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。因此,会抛出一个编译时错误