单元测试 - 找不到硒 C# 元素需要很长时间

本文关键字:长时间 元素 找不到 单元测试 | 更新日期: 2023-09-27 17:56:47

我正在使用Selenium for C#来测试页面。

如果在页面上找不到元素,有没有办法快速失败?

如果页面上找不到HTML元素,我正在经历很长时间的Selenium测试,然后最终失败。如果找不到元素,请立即失败的建议!

return WebDriver.FindElement(By.Id(myTextBoxId)

单元测试 - 找不到硒 C# 元素需要很长时间

您可以尝试在测试开始时更改超时等待时间。

// In C# you can use
ChromeDriver driver = new ChromeDriver("Path to Driver");
driver.Manage().Timeouts().ImplicitlyWait(new Timespan(0,0,2));

现在,这应该等待 2 秒钟,让元素出现,然后失败。您可以将此值设置为所需的任何值。

如果不使用任何implicit等待或explicit等待,则搜索元素应立即失败。如果您这样做,请删除它们。而且,如果您混合隐式和显式等待,那么这甚至会使它变慢。另一方面,如果您预计该元素不存在,并希望快速检查该元素是否存在并继续,请使用列表中的findElements()size()。如下所示:

List<WebElement> elements = driver.findElements(By.xpath("something"));
if(elements.size()>0){
    //element exist
}else{
    //does not exist
}