有什么方法可以检查页面上是否存在元素而不使用 selenium C# 引发异常。
问问题
5109 次
3 回答
9
您的替代方法可能是使用.FindElements
. 给定一个不匹配任何内容的选择器,它将返回一个空列表,而不是引发异常。
var elementExists = driver.FindElements(By.ClassName("something")).Any();
Any
是一种 LINQ 方法,仅检查列表是否包含某些内容(想想.Count == 0
)。
于 2015-01-21T22:43:21.357 回答
1
我会使用 try catch 块explicit
等待
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;
}
}
于 2015-01-21T20:27:40.367 回答
-1
http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp
There is something called an explicit and implicit wait take a look at the above link.
于 2015-01-21T20:27:39.043 回答