0

我有一個這樣的HTML代碼。在uib下拉菜單中選擇元素

<div ng-if="!hide" class="dropdown pull-right" uib-dropdown> 
    <a uib-dropdown-toggle href="" > 
    <div class="btn btn-primary-outline btn-circle btn-xs pull-right comment-button"> 
     <span class="icon icon-chevron-down"></span> 
    </div> 
    </a> 
    <ul class="dropdown-menu " style="text-align: center;" role="menu" uib-dropdown-menu> 
     <li role="divider" ng-if="showDelete"><a href="" ng-click="deleteItem($index)">delete </a></li> 
     <li role="divider"><a href="" ng-click="Report()"> report</a></li> 
    </ul> 
</div> 

在量角器中使用時遇到與uib-dropdown選擇有關的問題。 我寫這樣的代碼:

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); 
+0

什麼是拋出 –

+0

失敗的錯誤:無效的選擇:一個無效的或非法的選擇是specified.Thanks @ Danny.this錯誤進入第二行我認爲 – Shiva

回答

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(); 
} 
+0

拋出一個錯誤@Danny:失敗:無法讀取未定義的屬性'toUpperCase' 堆棧: TypeError:無法讀取屬性' toUpperCase'undefined – Shiva

+0

非常感謝,它的工作很好@丹尼 – Shiva

+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(); 
+0

以上所有的方式嘗試,仍面臨同樣的問題。 @ alecxe.please幫我解決 – Shiva

+0

@Shiva好吧。儘管如此,你不應該得到同樣的錯誤。你看到什麼錯誤?謝謝 – alecxe

+0

仍然面臨同樣的問題。頁面包含兩個下拉的無法找到第二個元素@alecxe – Shiva