我正在尝试单击网页中带有特定文本的特定链接。 但是,如果链接不存在,则需要 1 分钟才能打印出未找到元素。如何减少此时间以加快执行速度?
try{
if (!driver.findElements(By.xpath("//a[text()='specifictext']/@href")).isEmpty())
{
By loadMoreComment=By.linkText("specifictext");
driver.findElement(loadMoreComment).click();
}
}
catch (NoSuchElementException e)
{
logger.warn("Specific text not found");
}
这只会因为隐式等待而发生。看看下面的定义
隐式等待
隐式等待是告诉 WebDriver 在尝试查找一个或多个元素(如果它们不是立即可用(时轮询 DOM 一段时间。默认设置为 0。设置后,将为 WebDriver 对象实例的生存期设置隐式等待。
因此,如果您想要早期失败,您应该降低隐式等待
driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
以上调用前你的代码,将确保在2秒内发生故障
使用隐式等待来减少标记等待时间。
隐式等待用于提供等待时间(例如 30 秒( 在整个测试脚本的每个连续测试步骤之间,或 程序。下一步仅在 30 秒(或任何时间(执行 给出已过(在执行上一步后。
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);