将List <webelement>作为参数传递或从PageObject获取

时间:2018-09-30 16:07:03

标签: selenium

我正在与我的一位同事讨论这个问题,我们有不同的观点。我想在这里问这个问题,以获取最佳实践的输入。

页面上有我们要检查的元素数组。数组中的元素数量可以变化。

我们指定了这种方法来遍历元素并将它们收集到一个列表中。

public List<WebElement> getElements(){
    return listOfElements;
}

现在,我想检查每个元素中的某些内容。假设我要检查每个元素都有一个图标。最好的方法是什么?

我提出两个选择。

选项1的参数很容易阅读,并且用户不需要知道要传入哪个特定数组。

选项2的参数是线程安全性,我们可以确定每个线程都将抓住它自己的列表,并且该列表中仅包含此测试中的元素。

该测试在具有Selenium和Gradle的环境中运行

选项1:将方法getElements()作为其主体的一部分。

public boolean isIconFoundOnElement(){
    for(WebElement element : getElements()){
        if(!element.getIcon().isDisplayed()){
            fail("Icon Not Found")
        }
}

选项2:在运行时将getElements()作为参数传递。

public boolean isIconFoundOnElement(List<WebElement> listOfElements){
    for(WebElement element : listOfElements){
        if(!element.getIcon().isDisplayed()){
            fail("Icon Not Found")
        }
}


isIconFoundOnElement(getElements());

还有更好的第三种选择吗?

0 个答案:

没有答案