任何人都可以帮助我如何选择量角器吗?
页面目标代码
function selectDropdownbyNum(element, optionNum) {
if (optionNum) {
element.all(by.tagName('option')).then(function(options) {
browser.sleep('5000');
options[optionNum].click();
console.log('Desired value selected');
});
}
}
var pageName= function(){
this.selectTier = async function(){
var Tiers = element(by.xpath(/*element value*/));
console.log('select silver method');
browser.sleep(5000);
selectDropdownbyNum(Tiers,2);
console.log('value selected');
};
};
module.exports = new pageName();
规格如下
it('select Silver Tier',async function(){
browser.ignoreSynchronization = true;
console.log('Executing silver tier selection test case');
await pageName.selectTier()
});
我已经尝试了上面的代码。我可以打印下拉菜单的所有值,但是无法单击。
他们在上面的代码中有任何错误。我可以打印“ Desired value selected
”。但是没有选择价值
答案 0 :(得分:0)
我还没有测试它,但是我想这是因为您在for循环中使用了嵌套的promise。 promise的性质是异步的,并且for循环是同步的,这导致循环完全响起,第一个items[i].getText().then
的诺言得到解决,这就是您的点击未成功的原因。如果您不需要知道选项名称,则只需删除嵌套的承诺items[i].getText()
,然后在循环中执行单击即可。
答案 1 :(得分:0)
尝试:
var Tiers = element(by.xpath(dropDownValue));
Tiers.click();
selectDropdownbyNum(element, optionNum) {
if (optionNum) {
element.all(by.tagName('option')).then(function(options) {
options[optionNum].click();
});
}
}
selectDropdownbyNum(Tiers,4)
注意: 避免使用Xpath示例,请使用:
element(by.css('select[formcontrolname="any value according to situation"]'));
答案 2 :(得分:0)
可能会帮助您选择选项
element(by.cssContainingText('option','Option value'))。click();
或
element(by.id('id')).sendKeys("Values from option");
这对我有用