我正在使用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)
答案 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”])