从复杂的下拉列表中获取选择值

时间:2018-12-14 17:22:33

标签: java selenium user-interface automation protractor

在这里我没有处理最简单的下拉菜单,但是我可以单击该下拉菜单,但无法捕获其中的值。即使我可以选择第一个值,也会有所帮助...

我尝试了典型的element(by.id('procurer-name', 'Armina OÜ')).click();,但没有尝试。

前端使用Angular,外部HTML如下所示:

<select ng-if="!readOnly" class="form-control ng-scope ng-not-empty ng-dirty ng-valid-parse ng-valid ng-valid-required ng-touched" id="procurer-name" name="procurer-name" ng-model="$parent.model" ng-options="item.procurerId as item.name for item in $parent.data | orderBy : [&quot;name&quot;]" ng-required="$parent.required" ng-disabled="$parent.ngDisabled" ng-change="onChangeFn()" required="required" style=""><option value="" ng-if="!hideDefaultOption" translate="" class="">-Vali-</option><!-- ngIf: !hideDefaultOption --><!-- end ngIf: !hideDefaultOption --><option label="example" value="number:109704">example2</option><option label="example" value="number:109913">example</option></select>

1 个答案:

答案 0 :(得分:0)

很有可能Armina OÜ可能导致脚本中出现编码问题。 使用CSS选择器找到选项标签starts with Armina,如下所示:

css: #procurer-name option[label^="Armina"]

量角器代码:

element(by.id('#procurer-name')).click();
element(by.css('#procurer-name option[label^="Armina"]')).click();

等效的xpath为

xpath: //select[@id='procurer-name']//option[starts-with(@label, "Armina")]

量角器代码:

element(by.id('#procurer-name')).click();
element(by.xpath('//select[@id='procurer-name']/option[starts-with(@label, "Armina")]')).click();