首页 > 解决方案 > 如何在泛型方法中添加等待点击功能?

问题描述

在此处输入图像描述 我有一个名为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);
    }

标签: javaselenium-webdriver

解决方案


您可以使用显式等待来创建泛型方法。

显式等待的示例方法:

/**
 * 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));
}

希望这可以帮助。


推荐阅读