在uib-dropdown菜单中选择元素

时间:2016-11-26 07:01:18

标签: angularjs protractor angular-ui-bootstrap gulp-protractor

我有这样的HTML代码。

var dropDown = element(by.css("div[uib-dropdown]"));
dropDown.element(by.css("a[uib-dropdown-toggle]"));
dropDown.element(by.css("a[ng-click=deleteItem($index)]")).click(); 
browser.sleep(5000);

在量角器中使用uib-dropdown选择时遇到问题。 我写了这样的代码:

{{1}}

2 个答案:

答案 0 :(得分:0)

a[ng-click=deleteItem($index)]实际上是无效的CSS选择器,您需要put the attribute value into quotes

dropDown.element(by.css('a[ng-click="deleteItem($index)"]')).click(); 

尽管如此,我选择的部分匹配似乎更具可读性:

dropDown.element(by.css('a[ng-click*=deleteItem]')).click(); 

其中*=表示"包含"。

或者,您甚至可以使用"链接文字"定位器:

dropDown.element(by.linkText('delete')).click(); 
dropDown.element(by.partialLinkText('delete')).click(); 

答案 1 :(得分:0)

 this.selectMenuOption = function (option) {  //menu item to click
    var dropdown = element(by.className('dropdown pull-right'));        
    dropdown.click();
    dropdown.element(by.tagName('ul')).all(by.tagName('li')).filter(function (elem) {
         return elem.getText().then(function (val) {
             return val.toUpperCase() === option.toUpperCase();
      })
   }).first().click();
}