有很多方法可以做到这一点,我尝试过很多方法,但在进行自动测试时,我无法从下拉菜单中选择项目。
“选择”是下拉菜单中显示的默认选项,我希望自动测试选择其中一个元素,无论哪一个
这是HTML代码
<select class="form-control ng-pristine ng-invalid ng-invalid-required" ng-model="user.investmentAmount" required="" ng-class="{submitted:invalid}">
<option value="">Select</option>
<option value="<50"> 50K</option>
<option value="50-100">100K</option>
<option value="100-250">250K</option>
<option value="250-500">500K</option>
</select>
这是我的量角器文件
var selectDropdownbyNum = function ( element, optionNum ) {
if (optionNum){
var options = element(by.cssContainingText("Select"))
.then(function(options){
options[2].click();
});
}
};
browser.sleep(2000);
我尝试过使用by.cssElement,by.xpath等。 当我运行上面的操作时,我没有错误,但它也没有选择任何元素。 感谢
答案 0 :(得分:0)
肯定选择是一个奇怪的鸭子。我通常只按文本选项(如果可能)。例如。你应该可以做这样的事情......
var selectOptionByText = function(text) {
return element(by.cssContainingText('option', text)).click();
};
答案 1 :(得分:0)
点击//选择[@ng-model =&#39; user.investmentAmount&#39;] usng xpath后, 等一下像#34; browser.sleep(2000)&#34;然后使用//选项[text()=&#39; 100K&#39;]点击。
答案 2 :(得分:0)
这是因为你只选择了一个包含'Select'值并期望数组的选项,
尝试下面的内容,首先按型号选择框并获取所有选项 数组中的html标记名称
browser.element(by.model('user.investmentAmount')).all(by.tagName('option')).
then(function(items){
items[2].click();
});