首页 > 解决方案 > 我们能否编写一个以元素为参数并返回结果的泛型方法。(例如返回 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。

谢谢。

标签: selenium-webdriver

解决方案


我认为您可以直接在方法参数中传递 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();
     }

推荐阅读