Lia*_*nat 6 angularjs protractor
我想通过它的文本点击项目,而不是从下拉框中点击它的值.
我找到了这个伟大的帖子: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();
}
});
}
Run Code Online (Sandbox Code Playgroud)
这是一个选择项功能,我可以像这样使用:
var browser = protractor.getInstance();
browser.selectOption = selectOption.bind(browser);
browser.selectOption(protractor.By.id('my-dropdown'), 'My Value');
Run Code Online (Sandbox Code Playgroud)
Pau*_*ulL 23
这个问题类似于:如何在下拉量角器e2e测试中选择选项
只要您使用最新版本的量角器,您就可以:
element(by.cssContainingText('option', 'BeaverBox Testing')).click();
Run Code Online (Sandbox Code Playgroud)
如果您想按号码点击,您可以:
var selectDropdownbyNum = function ( element, optionNum ) {
if (optionNum){
var options = element.findElements(by.tagName('option'))
.then(function(options){
options[optionNum].click();
});
}
};
Run Code Online (Sandbox Code Playgroud)
小智 12
此功能选择您选择框的第3个选项.
function selectDropdownByNumber(element, index, milliseconds) {
element.findElements(by.tagName('option'))
.then(function(options) {
options[index].click();
});
if (typeof milliseconds !== 'undefined') {
browser.sleep(milliseconds);
}
}
var mySelect = $('#my-dropdown');
selectDropdownByNumber(mySelect, 2);
Run Code Online (Sandbox Code Playgroud)
更多信息可以在这里找到 - http://qainsight.blogspot.fr/2014/04/select-dropdown-value-in-protractor-js.html
如果要按值选择选项,可以使用:
var select = element.one(by.model('selectData'));
select.$('[label="Option 1"]').click();
Run Code Online (Sandbox Code Playgroud)