当您尝试使用selenium WebDriver
. 您可以driver
通过使用隐式等待或显式等待来等待页面完全加载
隐式等待示例(此代码通常在初始化驱动程序后使用)-
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
如果驱动程序找不到您要查找的元素,上述语句使驱动程序等待 10 秒。如果驱动程序即使在 10 秒后也找不到它,则驱动程序会引发异常。
显式等待的示例- 在您的情况下,这专门用于单个WebElement
-
new WebDriverWait(driver, 20).until(ExpectedConditions.presenceOfElementLocated(By.id("gwt-debug-loginButton")));
上面的代码将使驱动程序等待 20 秒,直到找到元素。如果即使在 20 秒后也找不到该元素,则会引发 TimeoutException。您可以在此处检查 ExpectedCondition 的 API (您可以在此类中使用许多有趣的变体)
(Note that the driver will wait for the specified period of time only if it cannot find the element your code is looking for, if the driver finds an element then it simply continues with execution)