我使用的是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秒内工作。
答案 0 :(得分:0)
您的事件处理程序是否使用document.ready
附加,在这种情况下,该元素变为"可点击" (事件处理后)变得可见。因此,更准确的条件是elementToBeClickable