java - 如何在泛型方法中添加等待点击功能?
问题描述
我有一个名为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);
}
解决方案
您可以使用显式等待来创建泛型方法。
显式等待的示例方法:
/**
* 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));
}
希望这可以帮助。
推荐阅读
- python - Jupyter 中 plt.imshow() 和 cv2.imshow() 的不同结果
- python - 加载具有字符串格式的文件
- ios - 如何防止两个堆叠的 UIView 的阴影加倍并变厚?[迅速]
- laravel - 无法在 Plesk 中使用 Laravel 发送电子邮件
- sorting - 得到一个错误,即使我是一个数字,我也无法将 nil 与数字进行比较
- linux - 尝试使用用户输入、环境变量、文件系统操作、条件、下载、取消归档来编写脚本
- http - Dart:未处理的异常:类型'String'不是'index'类型'int'的子类型
- rest - 使用 Genexus 的 Rest Service 问题(url 编码)
- reactjs - 与 Firestore 的实时反应聊天,我如何订阅数据?
- ruby-on-rails - 如何在没有用户会话的情况下连接 websocket?