我使用ChromeDriver的无头模式。我通过调用找到一个元素
var name= Driver.FindElement(By.Id("TestLabelName"));
if (name== null)
{
}
这里的问题是,如果元素不存在,它只是异常并停止,不进行null检查。有没有一种方法可以返回元素或者只返回null?或者返回控制台窗口数据,而不必将每个FindElement都包裹在try-catch中?
使用FindElement而不是FindElement。
如果找不到匹配的元素而不是异常,findElements将返回一个空列表。
文本复制自:使用SeleniumWebDriver测试元素是否存在?
您还可以编写一个静态方法来查找元素:
public static IWebElement _FindElement(ChromeDriver inCromeDriver, string inNameElementId)
{
try
{
var name = inCromeDriver.FindElement(By.Id(inNameElementId));
return name;
}
catch (System.Exception ex)
{
System.Console.WriteLine(ex);
return null;
}
}