C#Selenium-是否有任何方法可以检查元素是否存在而不抛出NosTouchElementException

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 { //

是否有任何方法可以使用selenium C#在不引发异常的情况下检查页面上是否存在该元素。


有一种称为显式和隐式等待的方法,请看上面的链接。

我会将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