下拉选择在量角器中不起作用
Drop down selection is not working in protractor
帮我解决这个问题。我必须 select 下面下拉列表中的值是我的定位器。我试过 Css,XPath 和 Repeater 到 select 的值。 CSS 并且 Xpath 正在显示 "No Element found." 当使用 Repeater 时,它没有显示任何错误,也没有 selecting 下拉列表中的值。我还需要解释什么。出现超时问题
<select class="form-control">
<option value="Select peripheral">Select peripheral</option>
<!-- ngRepeat: p in peripheral --><option data-ng-repeat="p in peripheral" value="" class="ng-binding ng-scope">CUCM_PG_1</option>
<!-- end ngRepeat: p in peripheral -->
</select>
您可能应该尝试等待 select 下拉列表中的选项加载。下面的代码应该适用于您在代码中给出的唯一 option
元素 -
var elem = $('.form-control');
var optionsToSelect = elem.element(by.repeater('p in peripheral'));
elem.click().then(function(){
browser.waitForAngular().then(function(){
browser.wait(protractor.ExpectedConditions.visibilityOf(optionsToSelect),10000)
.then(function(){
optionsToSelect.click();
});
});
});
如果上面的代码仍然没有点击下拉元素,那么尝试在点击选项元素后发送回车命令。方法如下 -
browser.actions().sendKeys( protractor.Key.ENTER ).perform();
同样,您可以使用元素定位器 select 任何您想要的选项。您需要做的就是用您的选项定位器替换 var optionsToSelect = elem.element(by.repeater('p in peripheral'));
。
如果您在下拉列表中有多个选项,并且您想要 select 所有这些都串联,您可以通过遍历元素来实现。方法如下 -
var elem = $('.form-control');
var optionsToSelect = elem.element.all(by.repeater('p in peripheral')); //get all options with the repeater
optionsToSelect.each(function(eachOption){
eachOption.click().then(function(){
//Perform any operation that you want after clicking each option
browser.sleep(1000);
});
});
希望对您有所帮助。
帮我解决这个问题。我必须 select 下面下拉列表中的值是我的定位器。我试过 Css,XPath 和 Repeater 到 select 的值。 CSS 并且 Xpath 正在显示 "No Element found." 当使用 Repeater 时,它没有显示任何错误,也没有 selecting 下拉列表中的值。我还需要解释什么。出现超时问题
<select class="form-control">
<option value="Select peripheral">Select peripheral</option>
<!-- ngRepeat: p in peripheral --><option data-ng-repeat="p in peripheral" value="" class="ng-binding ng-scope">CUCM_PG_1</option>
<!-- end ngRepeat: p in peripheral -->
</select>
您可能应该尝试等待 select 下拉列表中的选项加载。下面的代码应该适用于您在代码中给出的唯一 option
元素 -
var elem = $('.form-control');
var optionsToSelect = elem.element(by.repeater('p in peripheral'));
elem.click().then(function(){
browser.waitForAngular().then(function(){
browser.wait(protractor.ExpectedConditions.visibilityOf(optionsToSelect),10000)
.then(function(){
optionsToSelect.click();
});
});
});
如果上面的代码仍然没有点击下拉元素,那么尝试在点击选项元素后发送回车命令。方法如下 -
browser.actions().sendKeys( protractor.Key.ENTER ).perform();
同样,您可以使用元素定位器 select 任何您想要的选项。您需要做的就是用您的选项定位器替换 var optionsToSelect = elem.element(by.repeater('p in peripheral'));
。
如果您在下拉列表中有多个选项,并且您想要 select 所有这些都串联,您可以通过遍历元素来实现。方法如下 -
var elem = $('.form-control');
var optionsToSelect = elem.element.all(by.repeater('p in peripheral')); //get all options with the repeater
optionsToSelect.each(function(eachOption){
eachOption.click().then(function(){
//Perform any operation that you want after clicking each option
browser.sleep(1000);
});
});
希望对您有所帮助。