我有一个名为
Generics
的类,在该类中,我编写了所有通用方法,例如clickElement
,ClickOnButton
...等...与在实际的类中使用thread.sleep
不同默认添加,直到在Click元素的通用类中可见该元素为止。
我想在通用类的通用方法中添加等待,而不是实现类。
这是一般的习惯
public void clickElement(WebDriver driver, String xpathExpress) throws InterruptedException {
try {
driver.findElement(By.xpath(xpathExpress)).click();
Thread.sleep(4000);
} catch (Exception e) {
System.out.println(e);
}
答案 0 :(得分:1)
您可以使用Explicit wait创建通用方法。
显式等待的示例方法:
/**
* Wait for element to appear on the webpage
* @param driver
* @param locatorObject
*/
public void waitForElementToBeVisible(WebDriver driver, By locatorObject) {
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.visibilityOfElementLocated(locatorObject));
}
/**
* Waits for element to become interactive/clickable
* @param driver
* @param locatorObject
*/
public void waitForElementToBeClickable(WebDriver driver, By locatorObject) {
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.elementToBeClickable(locatorObject));
}
希望这会有所帮助。