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...?
}
Я знаю, что POM - это шаблон, также в этом вопросе у меня нет проблем с POM, я не знаю, как правильно написать утверждение для элемента в списке выбора. Я написал о POM в заголовке вопроса, чтобы показать, почему структура кода такая, как я указал
Хорошо, просмотрите ссылку на мой предыдущий пост. Это может помочь.




Вы можете использовать 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);
}
используя этот пример, где я должен ввести WebElement моего выбора с именем «mainSelect»? А на части for (WebElement e : options) "опции" светится красным
options является результатом select.getOptions (). Отредактировано для уточнения.
Если в раскрывающемся списке есть только одно выбранное значение, поможет способ ниже.
//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.
использовал утверждение testNG.
да, у меня есть несколько вариантов в списке выбора, поэтому этот пример мне не подходит, но в любом случае спасибо, я думаю, что этот вариант тоже когда-нибудь пригодится
POM - это шаблон для написания кода, например, деформации каждого действия (кнопки / поля и т. д.) На веб-странице в методах / функциях. Утверждение - другое дело. Java предоставляет оператор assert, просто прочтите документацию. Также, если вы используете TestNg, прочтите это: toolsqa.com/selenium-webdriver/testng-reporters-asserts