2015-09-07 23 views
2

我有這種類型的標題欄的HTML頁面:量角器點擊方法是行不通的

<div id="navbarCollapse" class="collapse navbar-collapse"> 
    <ul ng-if="navMap.main" class="nav navbar-nav ng-scope" ng-repeat="item in navMap.main"> 
    <li ng-if="item.items &amp;&amp; item.items.length > 0" class="dropdown ng-scope"> 
     <a href="#" class="dropdown-toggle ng-binding" data-toggle="dropdown" role="button" aria-expanded="false"> 
      <i ng-if="item.iconClass &amp;&amp; item.iconClass !== ''" class="glyphicon glyphicon-file"></i> 
      Documentazione 
     <span class="caret"></span> 
     </a> 
     <ul class="dropdown-menu" role="menu"> 
     <li ng-repeat="child in item.items" ng-class="{divider:child.divider, 'dropdown-section':child.section}" class="ng-scope"> 
      <a ng-if="!child.section &amp;&amp; !child.divider" href="#" ng-click="navigate(child)" class="ng-binding ng-scope"> 
      Introduzione 
      </a> 
     </li> 
     </ul> 
    </li> 
    </ul> 
    <ul ng-if="navMap.main" class="nav navbar-nav ng-scope" ng-repeat="item in navMap.main"> 
    <li ng-if="item.items &amp;&amp; item.items.length > 0" class="dropdown ng-scope"> 
     <a href="#" class="dropdown-toggle ng-binding" data-toggle="dropdown" role="button" aria-expanded="false"> 
      Funzionalità 
     <span class="caret"></span> 
     </a> 
     <ul class="dropdown-menu" role="menu"> 
     <li ng-repeat="child in item.items" ng-class="{divider:child.divider, 'dropdown-section':child.section}" class="ng-scope"> 
      <a ng-if="!child.section &amp;&amp; !child.divider" href="#" ng-click="navigate(child)" class="ng-binding ng-scope"> 
      Nuovo Ordine 
      </a> 
     </li> 
     </ul> 
    </li> 
    </ul> 
    <ul ng-if="navMap.right" class="nav navbar-nav pull-right ng-scope"> 
    <li ng-if="!item.items" ng-hide="item.items" class="ng-scope"> 
     <a href="#" ng-click="navigate(item)" class="ng-binding"></a> 
    </li> 
    <li ng-if="item.items &amp;&amp; item.items.length > 0" role="presentation" class="dropdown ng-scope" ng-repeat="item in navMap.right"> 
     <a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> 
     <span class="flag-icon flag-icon-it"></span> 
     <span class="ng-binding">Cambia</span> 
     <span class="caret"></span> 
     </a> 
     <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1"> 
     <li nf-if="item.navigationMode.toUpperCase() === 'CHANGELOCALE'" ng-repeat="child in item.items" role="presentation" ng-class="{disabled: configuration.langId === child.locale } " class="ng-scope disabled"> 
      <a href="" role="menuitem" tabindex="-1" ng-click="changeLanguage(child.locale)" class="ng-binding">Italiano</a> 
     </li> 
     </ul> 
    </li> 
    </ul> 
</div> 

我想建立一個量角器測試選擇包含在列表中的一個特定項目進入標題欄。這些列表中的每個項目都會重定向到另一個html,只需單擊它即可。我可以通過測試正確選擇一個列表項(我在調試模式下,選擇正確的項目),但是當我使用量角器的click()方法模擬點擊時,沒有任何反應。測試成功結束,但我沒有看到重定向到所選頁面。

這種選擇的一個例子代碼:

// Opens on Documentation Menu -> IT SUCCEEDS AND I SEE THE MENU OPENED 
$$('li.dropdown:nth-child(1)').get(0).$('a:nth-child(1)').click(); 
// Choosing Introduction -> NOTHING HAPPENS 
$$('li.dropdown:nth-child(1)').get(0).$('ul li:nth-child(2) a:nth-child(1)').click(); 

還有其他量角器的指示來模擬一個錨標記的點擊?我的代碼有什麼問題或丟失了什麼?

回答

3

嘗試的方法是這樣:

  • 點擊ul元素開拓列表
  • 通過文本中找到的鏈接元素

代碼:

$("#navbarCollapse").click(); 

// by link text 
element(by.linkText("Documentazione")).click(); 

// or by partial link text 
element(by.partialLinkText("Documentazione")).click(); 

還有其他事情要嘗試:

  • 元素的scroll into view單擊它

    browser.executeScript("arguments[0].click();", elm.getWebElement()); 
    
  • 點擊 「通過JavaScript」

    browser.executeScript("arguments[0].scrollIntoView();", elm.getWebElement()); 
    
  • 舉動元素,然後單擊前

    browser.actions().mouseMove(elm).click().perform(); 
    
+0

謝謝您的回答!我解決了! – user140888

+0

沒有在我的情況下工作,我嘗試了所有的樣本,但沒有工作。 你所有的代碼都是在'repl'環境下工作的。但是當我把它放在文件上時不工作。 –

+0

@ ji-ruh沒關係,考慮提供一個單獨的問題,提供儘可能多的細節。請在這裏給我一個鏈接。謝謝! – alecxe