我正在使用带有C#的webdriver,我需要在不使用try-catch的情况下检查元素是否存在。
答案 0 :(得分:1)
您可以使用FindElements
。 FindElement
会抛出NoSuchElementException
。另一方面,FindElements
返回一个空列表。您可以检查列表是否为空,如果为真,则返回null。
IList<IWebElements> elements = driver.FindElements(By.Id("abcd"));
Assert.True(elements.Count==0, "Field is editable");
答案 1 :(得分:0)
在js中,您可以使用任何这样的find元素方法:
driver.findElement(By.id('not-there')).then(function(element) {
alert('Found an element that was not expected to be there!');
}, function(error) {
alert('The element was not found, as expected');
});
来源:http://selenium.googlecode.com/git/docs/api/javascript/class_webdriver_WebElement.html
在c#中,您可以执行以下操作:
if(driver.FindElement(By.Id("abc")).size() == 0)
{
return null;
}