selenium-webdriver - 我们能否编写一个以元素为参数并返回结果的泛型方法。(例如返回 isDisplayed() 函数结果的方法)?
问题描述
我正在为包含 5 个不同元素(文本字段、单选框、复选框、列表、下拉列表)的表单页面编写 selenium 代码(Java)。我必须检查每个元素的可见性(例如,txtfield.isDisplayed())。
我正在关注页面对象模型,并且我有一个页面类,它定义了所有元素和使用这些元素的方法。目前,我已经为每个元素编写了 5 种不同的方法来返回可见性状态。这很好用。
但是,我想了解是否有可能有一种方法可以将元素作为参数并返回结果。
例如:
String idForTextField = "id-text-field"
public boolean isElementVisible(String input){
return input.isDisplayed()
}
我面临的问题是要调用函数 isDisplayed(),我们需要实际的元素名称(“idForTextField”);即使“idForTextField”作为参数传递,参数名称(“输入”)也不起作用。
是否有任何实施可以帮助实现这一目标?
请注意,表单元素的标识不同。其中两个是 id,三个是 xpath。
谢谢。
解决方案
我认为您可以直接在方法参数中传递 WebElement,以便 isDisplayed() 将适用于每个元素,无论是通过 id 还是 xpath 找到的。
用于创建检查元素是否显示的方法的代码片段假设以下提交按钮是您的 webelement
WebElement submitButton=driver.findElementBy.xpath("your xpath or use by.id");
//method to check visibility of web element
public boolean isElementVisible(Webelement element)
{ return element.isDisplayed();
}
推荐阅读
- c# - 无头模式设置为 true 时,无法在 Windows“打开”窗口中上传文件
- node.js - 不会执行猫鼬投影
- nginx - Nginx 位置路径中的变量
- javascript - 如何在 jhipster/Vue 中关闭 cors 进行开发
- neo4j - 有没有办法在neo4j中合并多个关系与单一ID?
- powershell - Powershell 从存储库运行安装程序可执行文件
- xml - MTOM,“Content-Disposition”标头中的参数“名称”是否有效?
- python - 合并 BTC 价格和当地时间的两个数据框
- python - 无法使用 OpenCV 重叠不同大小的图片
- sql - 在多对多关系中选择 ALL 而不是 ANY