我正在使用Protractor运行自动脚本,在其中一个页面上有两个位于下方/上方的下拉菜单。他们中的两个看起来完全相同,只是他们有不同的ng模型名称等。我可以成功地从其中一个下拉菜单中选择一个元素,但我不能为另一个。对于为什么一个有效而另一个无效,这有点破坏我的头脑。这是下拉菜单的代码,我可以在其中选择元素
<select class="form-control ng-pristine ng-invalid ng-invalid-required" ng-model="user.sourceOfFunds" required="" ng-class="{submitted:invalid}">
<option value="">Select</option>
<option value="Savings">Deposit</option>
<option value="Inherited">Current</option>
<option value="Other">Savings</option>
</select>
element(by.model('user.sourceOfFunds')).sendKeys('Savings');
我的其他下拉菜单如下:
<select class="form-control ng-pristine ng-invalid ng-invalid-required" ng-model="user.investFigure" required="" ng-class="{submitted:invalid}">
<option value="">Select</option>
<option value="<20">Less than 20K</option>
<option value="20-50">20K-50K</option>
<option value="50-100">50K-100K</option>
</select>
element(by.model('user.investFigure')).sendKeys('Less than 20K');
or
element(by.model('user.investFigure')).sendKeys('20');
当我尝试从第二个下拉菜单中选择一个项目时,我得到“找不到元素”。我为什么会这样做有点不知所措
答案 0 :(得分:1)
使用for(int i=0; i < response.length; i++)
{
System.out.println(response[i]) // prints the toString of a Data object.
}
选择下拉选项对我来说似乎很奇怪,即使它有效。鉴于@ alecxe的好建议,也许问题是可见性,但尝试另一种方式,看看sendKeys
是否是您的问题。
我在每天多次选择的测试中使用此代码而没有问题。也许它对你有用......
sendKeys
这样打电话......
var selectOptionByText = function(text) {
return element(by.cssContainingText('option', text)).click();
};