gpt4 book ai didi

AngularJS + Protractor 如何根据文本而非值选择下拉选项

转载 作者:行者123 更新时间:2023-12-04 13:00:44 25 4
gpt4 key购买 nike

我想通过文本而不是下拉框中的值来单击项目。

我发现了这个很棒的帖子:https://coderwall.com/p/tjx5zg但它没有按预期工作,在找到匹配项后搜索将永远继续,并且没有单击该项目,

如果有人有更好的例子(一个有效的例子)或者可以修复这个代码并使其工作,

我会理解的。

这是使用的帖子中的代码 Dan Haller(保留所有权利)

function selectOption(selector, item){
var selectList, desiredOption;

selectList = this.findElement(selector);
selectList.click();

selectList.findElements(protractor.By.tagName('option'))
.then(function findMatchingOption(options){
options.some(function(option){
option.getText().then(function doesOptionMatch(text){
if (item === text){
desiredOption = option;
return true;
}
});
});
})
.then(function clickOption(){
if (desiredOption){
desiredOption.click();
}
});
}

这是一个选择项功能,我可以这样使用:
var browser = protractor.getInstance();
browser.selectOption = selectOption.bind(browser);
browser.selectOption(protractor.By.id('my-dropdown'), 'My Value');

最佳答案

这个问题类似于:How to select option in drop down protractorjs e2e tests

只要您使用的是最新版本的 Protractor ,您就可以执行以下操作:

element(by.cssContainingText('option', 'BeaverBox Testing')).click();

如果你想按数字点击,你可以这样做:
var selectDropdownbyNum = function ( element, optionNum ) {
if (optionNum){
var options = element.findElements(by.tagName('option'))
.then(function(options){
options[optionNum].click();
});
}
};

关于AngularJS + Protractor 如何根据文本而非值选择下拉选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22895281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com