如何断言是否选择了下拉列表中的选定选项.硒.页面对象模型



我需要从下拉列表中选择选项并检查此选项是否被选择/对用户可见。选择选项的代码:

@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>
我想选择"阿拉巴马

州"并使用断言来检查是否确实选择了"阿拉巴马州"。我知道我必须编写一个函数,该函数将所选状态的名称发送到字符串。断言它将包含在此处:

@Then("^I see "([^"]*)" in dropdown$")
public void iSeeInDropdown(String state) 
Assert.assertEquals("Alabama",??????);}

在 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);
        }

我希望它有帮助...

最新更新