2015-07-20 36 views
1

我想在我的页面中找到一个元素。只有在应用程序出现任何错误时才会出现该元素。我处理得非常好,唯一的问题是它等待30秒(隐式等待)转移到下一步。我不想等待30秒,而是希望我的脚本能够等待3秒钟,然后才能进入下一步,所以我决定使用明确的等待时间。这里是我的代码明确的等待不起作用在硒webdriver

WebDriverWait wait = new WebDriverWait(driver, 3); 
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("errorelement"))); 

问题是,给了一个错误,并移动到下一步骤之前,硒的webdriver仍在等待该元素高达30秒。我试着用visibilityOfElementLocated选项,但它仍然无法正常工作。

我在这里错过了什么吗?

硒版本: - 2.46.0

浏览器: - Mozilla中,铬

+0

你能与我们分享完整的代码吗?看起来你忘了从某处删除30秒的等待。 – peetya

回答

2

我建议你到隐等待设置为0,并且始终使用显式的等待:

driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS); 

这里在这个话题上是一个很好的answer

+0

感谢您的回答。它帮助... – Naseem

1

如果您在使用相同的解决方案隐含的等待和明确的等待,你将不得不从seleniumhq文档

警告的问题:不要混用隐性和显性等待。这样做会导致无法预测的等待时间。例如,设置10秒的隐式等待和15秒的显式等待可能会导致20秒后发生超时。

+0

正是我在做什么.....感谢回应 – Naseem

相关问题