C#Selenium-是否有任何方法可以检查元素是否存在而不抛出NosTouchElementException
是否有任何方法可以使用selenium C#在不引发异常的情况下检查页面上是否存在该元素。C#Selenium-是否有任何方法可以检查元素是否存在而不抛出NosTouchElementException,c#,selenium,nosuchelementexception,C#,Selenium,Nosuchelementexception,是否有任何方法可以使用selenium C#在不引发异常的情况下检查页面上是否存在该元素。 有一种称为显式和隐式等待的方法,请看上面的链接。我会将try-catch块与显式等待一起使用 public bool CheckElementExist(string state) { //Write the selector carefully. By byCss = By.CssSelector("#view-" + state + ""); try { //
有一种称为显式和隐式等待的方法,请看上面的链接。我会将try-catch块与
显式
等待一起使用
public bool CheckElementExist(string state)
{
//Write the selector carefully.
By byCss = By.CssSelector("#view-" + state + "");
try
{
//Explicit wait to check if element exist for 10s
new WebDriverWait(Driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementExists(byCss));
return true;
}
catch (NoSuchElementException)
{
return false;
}
}
您可以选择使用
.FindElements
。给定一个与任何内容都不匹配的选择器,它将返回一个空列表,而不是抛出异常
var elementExists = driver.FindElements(By.ClassName("something")).Any();
Any
是一种LINQ方法,它只检查列表是否包含某些内容(想想。Count==0
)