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

本文关键字:检查 情况下 元素 是否 存在 try-catch | 更新日期: 2023-09-27 18:17:34

我正在使用c#的webdriver,我需要检查元素是否存在而不使用try-catch

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

您可以使用FindElementsFindElement会抛出一个NoSuchElementException。另一方面,FindElements返回一个空List。您可以检查列表是否为空,如果为真则返回null。

IList<IWebElements> elements = driver.FindElements(By.Id("abcd"));
Assert.True(elements.Count==0, "Field is editable");

在js中,您可以像这样使用任何查找元素方法:

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;
}