click()正在使用Thread.sleep()在2秒内工作但隐式地在Walenium 3中根本不起作用

时间:2016-12-09 06:18:56

标签: java selenium firefox

我使用的是Firefox 50.0.2和Selenium java 3.0.1 这是代码:

WebDriver d = new FirefoxDriver();
d.manage().window().maximize();
// d.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
d.get("http://www.quikr.com");
WebDriverWait w = new WebDriverWait(d, 5);
w.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("span.sign-up")));
Thread.sleep(2000);
d.findElement(By.cssSelector("span.sign-up")).click();

当我注释掉Thread.sleep(2000)并取消注释hiddenlyWait()时,注册按钮没有被点击。我也尝试过只使用过一次的pageLoadTimeout()。我想知道为什么implicitlyWait()现在在20秒后工作,而Thread.sleep(2000)在2秒内工作。

1 个答案:

答案 0 :(得分:0)

您的事件处理程序是否使用document.ready附加,在这种情况下,该元素变为"可点击" (事件处理后)变得可见。因此,更准确的条件是elementToBeClickable