显示等待
WebDriverWait
超时抛出TimeOutException,默认500毫秒
public class WaitToReturnElement { /* * 设置超时时间为5秒,返回指定xpath的WebElement * */ public static WebElement waitForByXpath(final WebDriver driver,final String xpath) { WebDriverWait wait = new WebDriverWait(driver, 5); return wait.until(new ExpectedCondition<WebElement>() { public WebElement apply(WebDriver arg0) { return driver.findElement(By.xpath(xpath)); } }); } /* * 设置超时时间为10秒,返回指定id的WebElement * */ public static WebElement waitForById(final WebDriver driver,final String id) { WebDriverWait wait = new WebDriverWait(driver, 10); return wait.until(new ExpectedCondition<WebElement>() { public WebElement apply(WebDriver arg0) { return driver.findElement(By.id(id)); } }); } /* * 设置超时时间为10秒,返回指定xpath的WebElement是否出现 * */ public static Boolean isElementDisplayed(final WebDriver driver,final String xpath) { WebDriverWait wait = new WebDriverWait(driver, 10); return wait.until(new ExpectedCondition<Boolean>() { public Boolean apply(WebDriver arg0) { return driver.findElement(By.xpath(xpath)).isDisplayed(); } }); } }
ExpectedCondition
等待元素直到可点击状态WebDriverWait wait=new WebDriverWait(driver,10);wait.until(ExpectedConditions.elementToBeClickable(By.xpath("")));
隐式等待
查找WebDriver无法使用的元素时等待,默认0,生命周期整个WebDriver
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
时间: 2024-12-23 19:11:41