waitForCondition
是 Selenium WebDriver 中的一个方法,用于等待某个条件成立。不过需要注意的是,waitForCondition
在 Selenium WebDriver 3.x 版本中已经被弃用,取而代之的是 WebDriverWait
和 ExpectedConditions
。
以下是在 Selenium WebDriver 2/3 中使用 waitForCondition
的示例代码:
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class WaitForConditionExample {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.get("https://www.example.com");
JavascriptExecutor js = (JavascriptExecutor) driver;
String condition = "return document.readyState === 'complete';";
js.executeScript("window.setTimeout(arguments[0], arguments[1]);", () -> {
System.out.println("Page is fully loaded");
}, 5000); // 5秒超时
driver.quit();
}
}
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
public class WaitForConditionExample {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.get("https://www.example.com");
WebDriverWait wait = new WebDriverWait(driver, 10); // 10秒超时
ExpectedCondition<Boolean> pageLoadCondition = new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver driver) {
return ((JavascriptExecutor) driver).executeScript("return document.readyState").equals("complete");
}
};
wait.until(pageLoadCondition);
System.out.println("Page is fully loaded");
driver.quit();
}
}
waitForCondition
是一个 JavaScript 执行器方法,用于在指定的时间内等待某个条件成立。WebDriverWait
和 ExpectedConditions
来实现类似的功能。WebDriverWait
和 ExpectedConditions
提供了更灵活和可读性更高的方式来等待特定条件。waitForCondition
是一个自定义的 JavaScript 条件。WebDriverWait
和 ExpectedConditions
提供了多种预定义的条件类型。waitForCondition
时遇到超时问题,可以检查 JavaScript 条件是否正确。WebDriverWait
和 ExpectedConditions
时,确保选择合适的条件和超时时间。希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云