Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Selenium Webdriver未等待元素_Java_Selenium_Selenium Webdriver - Fatal编程技术网

Java Selenium Webdriver未等待元素

Java Selenium Webdriver未等待元素,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,下面是我的针对firefox浏览器的selenium web驱动程序初始化 driver = new FirefoxDriver(); driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); 尽管我给出了隐式的等待,但selenium并没有等待元素。它将立即抛出not found异常。如果我

下面是我的针对firefox浏览器的selenium web驱动程序初始化

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

尽管我给出了隐式的等待,但selenium并没有等待元素。它将立即抛出not found异常。如果我把
Thread.sleep
放进去,那么它工作正常,没有任何问题。但是现在,将
Thread.sleep
放在测试用例包含的所有
Thread.sleep
比实际的测试用例代码都多。有人能给我建议正确的方法吗?

在这种情况下,您应该使用
ExplicitWait
等待特定元素可见或出现,因为隐藏线程不是一种好的做法。我建议您使用:

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

为什么不使用
ExplicitWait
而使用
WebDriverWait
?虽然首选的方法是通过显式等待,但上面的方法应该可以正常工作,但您能够在公共url上复制此问题吗?@MrunalGosar我在公共url上尝试了相同的方法,但没有睡眠。工作很好。在我当地,它是投掷error@MrunalGosar即使在登录页面中,按钮也会很快被单击,但操作不会发生。如果我在点击前放置睡眠5秒,它工作正常。是dojo.button你能用一个复制你的问题的示例应用程序来创建一个github项目吗?要不然就没有其他方法来发现你的问题了