如何在通用方法中添加等待点击功能?

时间:2019-06-12 12:39:33

标签: java selenium-webdriver

enter image description here 我有一个名为Generics的类,在该类中,我编写了所有通用方法,例如clickElementClickOnButton ...等...与在实际的类中使用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);
    }

1 个答案:

答案 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));
}

希望这会有所帮助。