如何使用宁静屏幕播放从下拉列表中选择一个值

时间:2018-01-17 16:07:54

标签: angularjs xpath serenity-bdd

我有一个网页,我试图从下拉框中选择xpath,默认情况下没有任何值。

<select id="country" class="multi ng-pristine ng-valid ng-empty ng-touched" ng-options="country as country.description for country in vm.countries" ng-change="vm.getDestinations()" ng-model="vm.country" style="">
<option value="?" selected="selected"></option>
<option label="Germany" value="object:589">Germany</option>
<option label="Austria" value="object:590">Austria</option>
<option label="Belgium" value="object:591">Belgium</option>

我尝试过使用Select.selectByVisibleText()但仍未获得。我可以找到国家/地区字段但无法选择特定国家/地区:

public Target selectCountry = Target.the("select country").located(By.xpath("//*[@id=\"app-container\"]/div[1]/span[3]/select[1]"));

请建议。

2 个答案:

答案 0 :(得分:0)

我现在可以选择国家。这不是一个宁静的问题。在上一页上执行某些操作后,我进入了此页面。 Actualy我在前一页和当前页面上有两个单独的“When”步骤。当我在单个“When”步骤中合并它们时,它已经开始从当前页面的下拉列表中选择国家/地区。我不知道为什么它没有单独的步骤。

答案 1 :(得分:0)

您可以继承(扩展)PageObject 类以利用预定义的选择类方法,例如 selectByVisibleText、selectByValue 和 selectByIndex。

@FindBy(id="country")
WebElementFacade dropDown_Country

public void selectDropDownValues(){
   dropDown_Name.selectByVisibleText("Germany");
}

这可以使用类似任务调用

actor.attemptsTo(Click.on(selectDropDownValues()));