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
I would use try catch block with explicit
wait
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 に答える