2016-08-30 172 views
1

这里是Firefox浏览器我的硒的网络驱动程序初始化。硒的webdriver不是等待元素

driver = new FirefoxDriver(); 
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); 

即使我给了隐含的等待硒而不是等待元素。它立即抛出找不到的异常。如果我把Thread.sleep,那么它工作正常,没有任何问题。但把Thread.sleep到处测试用例包含现在比实际的测试案例代码更Thread.sleep。任何人都可以建议我以正确的方式来做到这一点?

+0

为什么不使用'ExplicitWait'而不是'WebDriverWait'? –

+0

虽然首选方法是通过明确的等待,但上面没有任何问题,应该工作,你能复制公共URL这个问题? –

+0

@MrunalGosar我在公共网址中尝试了同样的睡眠方式。工作正常。在我的地方就抛出错误 – Rajesh

回答

1
在这种情况下

你应该使用ExplicitWait等待一个特定的元素可见还是现在,因为它不是TOSLEEP线程一个很好的做法。我会推荐使用:

WebDriver driver wait = new WebDriverWait(driver, "time here"); 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(xPath)));