如何使用页面对象模型(Webdriver + Java + JUnit)断言 "select" 列表具有值或可见文本?
How assert that "select" list has value or visible text using Page Object Model (Webdriver + Java + JUnit)?
public Select select;
public Select getSelect(WebElement element) {
select = new Select(element);
return select;
}
这是一个函数,我将在测试中使用它来断言 select 具有文本可见的元素,但我不知道如何断言 select 具有该元素,我认为有更好的方法来做到这一点
@FindBy(id = "...")
WebElement = mainSelect;
public void assertSelectHasElement(String string) {
getSelect(mainSelect);
select.selectByVisibleText(string);
Assert...?
}
你可以使用List<WebElement> allOptions = select.getOptions();
得到Select
的所有选项,然后遍历它们直到找到(或找不到)选项,例如:
@FindBy(id = "...")
private WebElement mainSelect;
public void assertSelectedValue(String value)
select = getSelect(mainSelect);
List<WebElement> options = select.getOptions();
boolean optionExists = false;
for (WebElement e : options) {
if (e.getText().equals(value)) {
optionExists = true;
break;
}
}
assertTrue("Option x should exist", optionExists);
}
如果下拉列表中只有一个选定值,以下方法会有所帮助。
//method to assert selected value in dropdown
public void assertSelectedValue(String expectedSelectedValue){
WebElement option = getSelect(webelement).getFirstSelectedOption();
String actualSelectedItem = option.getText();
Assert.assertEquals(actualSelectedItem, expectedSelectedValue);
}
//method to select options by visible text in dropdown
public void selectDropdownOption(String optionToSelect){
getSelect(webelement).selectByVisibleText(optionToSelect);
}
如果在下拉列表中选择了多个选项,则使用 katrihpl 在另一个答案中提供的逻辑。
public Select select;
public Select getSelect(WebElement element) {
select = new Select(element);
return select;
}
这是一个函数,我将在测试中使用它来断言 select 具有文本可见的元素,但我不知道如何断言 select 具有该元素,我认为有更好的方法来做到这一点
@FindBy(id = "...")
WebElement = mainSelect;
public void assertSelectHasElement(String string) {
getSelect(mainSelect);
select.selectByVisibleText(string);
Assert...?
}
你可以使用List<WebElement> allOptions = select.getOptions();
得到Select
的所有选项,然后遍历它们直到找到(或找不到)选项,例如:
@FindBy(id = "...")
private WebElement mainSelect;
public void assertSelectedValue(String value)
select = getSelect(mainSelect);
List<WebElement> options = select.getOptions();
boolean optionExists = false;
for (WebElement e : options) {
if (e.getText().equals(value)) {
optionExists = true;
break;
}
}
assertTrue("Option x should exist", optionExists);
}
如果下拉列表中只有一个选定值,以下方法会有所帮助。
//method to assert selected value in dropdown
public void assertSelectedValue(String expectedSelectedValue){
WebElement option = getSelect(webelement).getFirstSelectedOption();
String actualSelectedItem = option.getText();
Assert.assertEquals(actualSelectedItem, expectedSelectedValue);
}
//method to select options by visible text in dropdown
public void selectDropdownOption(String optionToSelect){
getSelect(webelement).selectByVisibleText(optionToSelect);
}
如果在下拉列表中选择了多个选项,则使用 katrihpl 在另一个答案中提供的逻辑。