为啥可点击的预期条件不执行 click()?
Posted
技术标签:
【中文标题】为啥可点击的预期条件不执行 click()?【英文标题】:Why expected conditions of clickable doesn't perform click()?为什么可点击的预期条件不执行 click()? 【发布时间】:2021-10-12 15:45:12 【问题描述】:为什么 waitForElementToBeClickable
的 Selenium 预期条件没有内置 click()
方法?
Selenium 知道我正在等待元素可点击,那么为什么我必须对该元素执行 driver.click()
的附加操作?
他们至少可以在那里添加某种标志,以便在满足预期条件时执行或不执行click()
。
【问题讨论】:
【参考方案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 社区的帮助下)能够创建自定义方法,即使在即将进行的项目中也可以重复使用。
问题还在,为什么他们给我留下完成方法的路?以上是关于为啥可点击的预期条件不执行 click()?的主要内容,如果未能解决你的问题,请参考以下文章
delphi 界面中点击按钮创建的窗体为啥在FormCreate中初始化代码?