如何在不使用try-catch的情况下检查元素是否存在

时间:2015-10-13 01:41:39

标签: c# selenium-webdriver

我正在使用带有C#的webdriver,我需要在不使用try-catch的情况下检查元素是否存在。

2 个答案:

答案 0 :(得分:1)

您可以使用FindElementsFindElement会抛出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;
}