JAVA Selenium WebElement 覆盖 click() 方法

标签 java selenium automation automated-tests

覆盖 WebElement click() 以添加一些 wait 功能是一种好习惯吗,因为在某些页面中我需要单击按钮,而在某些情况下按钮未加载然而,所以我添加了等待以检查元素是否可见。

所以我的问题是: 是创建抽象类 来实现 WebElement 并覆盖 click() 方法以添加一些等待功能更好还是只仅在特定页面中等待?

最佳答案

根据文档 Document Object Model (DOM) Level 2 HTML Specification click() 方法不接受任何参数,不返回任何值,也不报告任何异常.

enter image description here

所以,很明显我们不能首先重写 click() 方法。

但您始终可以编写自定义用户函数来点击 WebElement以及某些类型的等待。在这些情况下 Selenium的内置 Explicit WaitWebDriverWait来帮助我们。


显式等待

根据 documentation , 一个 ExplicitWait是您为 WebDriver 定义、配置和实现的代码块在继续下一行代码之前等待某个条件得到满足的实例。有一些方法可以帮助我们实现仅在需要时等待的 ExplicitWaitWebDriverWait 结合 ExpectedCondition 是实现 ExplicitWait 的方法之一。

您可以在此 discussion 中找到关于 ExplicitWait 的详细讨论.

关于JAVA Selenium WebElement 覆盖 click() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45954024/

相关文章:

java - 最大堆找到第 k 个最小元素

java - 如何使用按钮单击来打开 JSON feed 中的 url?

java - 使用selenium上传文件

python - 如何处理 Python Selenium 重复加载模式并保持 DRY?

java - Selenium、Firefox 和 GeckoDriver

java - 处理 FirebaseRecyclerAdapter 中的位置

java - 如何获取 PropertyPlaceHolderConfigurer 中所有属性的列表?

python - 如果字典中存在键则运行关键字(机器人框架)

ios - 从终端运行用于自动化的 Apple 仪器

使用 Cucumber BDD 进行 AngularJs 测试