我正在尝试使用量角器从下拉列表中选择角度e2e测试。
以下是选择选项的代码片段:
<div class="width70">
<span title="" class="k-widget k-dropdown k-header width100 ng-scope ng-dirty ng-valid-parse ng-touched ng-invalid ng-invalid-required k-invalid" unselectable="on" role="listbox" aria-haspopup="true" aria-expanded="true" tabindex="0" aria-owns="" aria-disabled="false" aria-readonly="false" aria-busy="false" style="" aria-activedescendant="9e8e661a-e100-4c17-bceb-3de8ac876316">
<span unselectable="on" class="k-dropdown-wrap k-state-default"><span unselectable="on" class="k-input ng-scope">Select Customer</span><span unselectable="on" class="k-select"><span unselectable="on" class="k-icon k-i-arrow-s">select</span></span></span>
<select kendo-drop-down-list="" required="" name="customer" ng-model="arrayView.selectedCustomer" k-options="arrayView.customerList" k-rebind="arrayView.customerList" validationmessage="Select Customer" class="width100 ng-scope ng-dirty ng-valid-parse ng-touched ng-invalid ng-invalid-required k-invalid" data-role="dropdownlist" style="display: none;" aria-invalid="true">
<option value="" selected="selected">Select Customer</option>
<option value="615">option A</option>
<option value="139">option B</option>
<option value="1476">option C</option>
<option value="570">option D</option>......`
我尝试了下一页中提及的几乎所有方法How to select option in drop down protractorjs e2e tests
他们似乎都没有为我工作。
我甚至找不到'select'('option'的父级标签)。
但我能成功点击div.span.span元素。
此外,当我点击下拉菜单时,我会看到一个搜索框以及所有选项。我正在附上相同的图片 请帮我。我尝试了几种方法似乎没有任何作用。
答案 0 :(得分:1)
var selectOptionFromDrpdwn = function (ngModelLocator, option) {
//arguments are strings
element(by.model(ngModelLocator))
.element(by.cssContainingText('option', option))
.click();
}
<强>解释强>
上面有两个参数:locator和要选择的选项的值。定位器可以是任何东西,但在这里我使用的是ng-model,如果你正在使用其他东西,你必须相应地改变定位器功能。
在找到的元素内部,我找到了使用[cssContainingText locator] [1]单击的选项。唯一的缺点是选项值要完全输入,它不能取部分值名称。否则,您可以使用选项编号逻辑并相应地传递一个数字,如下所示:
element(by.model(ngModelLocator)).all(by.tagName('option').get(optionNumber).click();