创建一个包含Geb页面对象选择器的字符串

时间:2018-03-05 21:00:30

标签: groovy geb

我正在使用Geb和Spock进行自动化测试。页面上有多个下拉列表,我想验证所有选项的文本。我正在使用以下内容来获取文本,它正在运行

String actualtext = "";
List<WebElement> options = driver.findElements(By.cssSelector("#dateFormat"))
        for(WebElement ddoptions : options) {
            actualtext = ddoptions.getText();
        }   
System.out.println(actualtext)

对于每个下拉列表,我都创建了一个页面对象

modalDateDropdown {$("#dateFormat")}

我想创建一个方法,我可以传入Geb页面对象,它将根据我传入的对象返回选项文本。我不确定如何使用页面对象并创建一个包含页面对象选择器(#dateFormat)。

我试图传递页面对象,但这不起作用,因为它不是选择器的值

public void verifyDropDownOptions(def object) {
    System.out.println(object)
    String actualtext = "";
    List<WebElement> options = driver.findElements(By.cssSelector(object))
    for(WebElement ddoptions : options) {
        actualtext = ddoptions.getText();
    }
    System.out.println(actualtext)
}

verifyDropDownOptions(modalDateDropdown)

2 个答案:

答案 0 :(得分:0)

我过度复杂的情景。解决方案是geb页面对象文本的简单断言,每个选项由\ n

分隔

断言modalDateDropdown.text()==&#34; MM / DD / YYYY \ nDD / MM / YYYY&#34;

答案 1 :(得分:0)

public void verifyDropDownOptions(Navigator dropdownobject,List itemsList){

items { find('option') } // Assuming options are with 'option' tag in HTML
assert items*.text() == itemsList

}

verifyDropDownOptions(modalDateDropdown,[“option1”,“option2”])