【问题标题】:Why expected conditions of clickable doesn't perform click()?为什么可点击的预期条件不执行 click()?
【发布时间】:2021-10-12 15:45:12
【问题描述】:

为什么 waitForElementToBeClickable 的 Selenium 预期条件没有内置 click() 方法?
Selenium 知道我正在等待元素可点击,那么为什么我必须对该元素执行 driver.click() 的附加操作?
他们至少可以在那里添加某种标志,以便在满足预期条件时执行或不执行click()

【问题讨论】:

    标签: java selenium webdriverwait expected-condition


    【解决方案1】:

    org.openqa.selenium.support.ui.ExpectedConditions.elementToBeClickable(By locator) 返回 WebElement 对象,它不是 void。您可以将 click() 添加到自定义 void:

    public static void waitForClickableAndClick(WebDriver driver, By by, int waitSeconds) {
        try {
            new WebDriverWait(driver, waitSeconds).until(ExpectedConditions.elementToBeClickable(by)).click();
        }
        catch (Exception exception) {
            exception.printStackTrace();
        }
    }
    

    【讨论】:

    • 还是为什么没有点击?为什么我需要 WebElement ,我想最终点击它
    • 如果您的测试没有执行点击,您的代码是否会抛出任何异常?或者有什么问题?
    • 没有错误,问题只是详细说明为什么硒家伙没有将click()添加到waitForElementToBeClickable,如果无论如何我想做的是单击元素他可以点击的时间
    • 不仅仅是这个案子。您可以在许多其他 API 中观察到类似的 void 'absence'(源代码会非常大且不必要地大)。您(在 SO 社区的帮助下)能够创建自定义方法,即使在即将进行的项目中也可以重复使用。
    • 问题还在,为什么他们给我留下完成方法的路?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    • 2011-08-28
    • 1970-01-01
    相关资源
    最近更新 更多