我需要从下拉列表中选择一个选项,并检查该选项是否为用户选择/可见。选择选项的代码:
@FindBy(how = How.ID, using = "id_state")
public WebElement StateDropDown;
public void ChooseState(String index){
Select Choose = new Select(StateDropDown);
Choose.selectByVisibleText(index);
这是我的下拉菜单:
<select name="id_state" id="id_state" class="form-control">
<option value="">-</option>
<option value="1">Alabama</option>
<option value="2">Alaska</option>
<option value="3">Arizona</option>
<option </select>
我想选择“阿拉巴马州”并使用assert来检查是否实际上选择了“阿拉巴马州”。我知道我必须编写一个函数,该函数将选择状态的名称发送到字符串。断言它将包含在这里:
@Then("^I see \"([^\"]*)\" in dropdown$")
public void iSeeInDropdown(String state)
Assert.assertEquals("Alabama",??????);}
答案 0 :(得分:2)
在Select类中,有一个名为“ getFirstSelectedOption()”的方法,该方法将从下拉列表中返回所选的Web元素选项。通过使用此方法,您可以检索如下所示的选项:
Select select = new Select(someElement);
String option = select.getFirstSelectedOption().getText();
您可以声明以下条件:
Assert.assertEquals("Alabama", option)
;
尝试执行以下步骤,
在页面对象类中添加以下方法:
public String getSelected() {
return new Select(StateDropDown).getFirstSelectedOption().getText().trim();
}
并按如下所示修改此步骤定义方法,该方法将调用页面对象类的方法,然后获取所选选项并进行断言。
@Then("^I see \"([^\"]*)\" in dropdown$") {
public void iSeeInDropdown(String state)
String selectedOption = new PageObjects().getSelected();
Assert.assertEquals("Alabama", selectedOption);
}
希望对您有帮助...