2015-11-24 108 views
3

我希望你能幫助我解決這個問題。我是量角器的新手。我不能點擊量角器中的一個元素,它說它不可見,即使手動檢查時它是可見的。以下是詳細內容:量角器 - 元素不可見(但手動檢查時可見)

CSS代碼:

<div class="list" ng-click="openOtherUsers(perCrisis)" ng-show="detailView"> 
<div class="item item-input-inset content-bg search-bar"> 
<button class="button button-clear" type="button"> 
<i class="icon ion-chevron-right"></i> 
</button> 
<label class="item-input-wrapper"> 
<i class="icon acc-search placeholder-icon"></i> 
<input class="ng-pristine ng-untouched ng-valid" type="text" placeholder="Search for people" ng-model="search.keywords"> 
</label> 
</div> 
</div> 

量角器代碼:

it("this is a trail for SEARCH click", function() { 
    browser.waitForAngular(); 
    var search = element(by.css('.list.list')); 
    //expect(search.isPresent()).toBeTruthy(); <<<<< PRESENT, but if  //isDisplayed is used: its false 
    search.click(); 
}); 

FYI:父類是列表中,我一直在使用 「目錄」/「也試過[NG-點擊=「openOtherUsers(perCrisis)」]「/」[ng-show =「detailView」]「作爲css定位器。

我希望你能幫助我。謝謝。

+0

對此有何進展? –

回答

0

該問題的一個可能的原因是可能存在與定位符匹配的另一個元素。在這種情況下,您可能需要改進定位器以唯一標識所需的元素。

另一件事,可能有助於爲等待 - 我們將wait for the element to become visible

var search = element(by.css('[ng-click="openOtherUsers(perCrisis)"]')), 
    EC = protractor.ExpectedConditions; 

browser.wait(EC.visibilityOf(search), 5000); 

search.click(); 
+0

hi @alecxe。感謝您的回覆,非常感謝。但它沒有奏效,甚至將等待時間延長到20秒,但仍然沒有。 –

+0

@MerBoyAnthonyDuran你確定這個元素是唯一一個與定位符匹配的元素嗎?在測試運行期間你會得到任何警告嗎?謝謝 – alecxe

+0

嗨@alecxe。我實際上嘗試獲取所有元素,然後單擊第一個找到的元素 - 但它仍然不起作用。我實際上有很多元素,當點擊返回元素不可見的錯誤。我是量角器新手,所以我真的沒有想法處理它。非常感謝您的幫助 –

0

您可以嘗試使用「動作」鼠標移動到元素,然後進行點擊()

browser.actions().mouseMove(search, 1, 1).perform().then(function(){elem.click()}); 
+0

Hi @CodeRJ。感謝您的回覆。嘗試過,但它仍然返回元素不可見。 –