2016-07-09 17 views
1

私はこのような無限のスクロールコンポーネントでレコードを探している分度器テストを持っています。分度器 - 無限のスクロールバーへのスクロールに関する問題

searchPage.searchEntitlement('search criteria'); 
    var myHiddenElementInScroller = element(by.repeater('result in ctrl.results track by $index').row(12)); 
    browser.driver.executeScript(function() { arguments[0].scrollIntoView(); }, myHiddenElementInScroller .getWebElement()); 

myHiddenElementInScroller.click(); 

これは要素にスクロールしてクリックすることになっています。その代わりに私の要素を投げることは目に見えない誤りではない。

誰もがこのような状況に遭遇しましたか?どんな助けでも大歓迎です。

あなたが明示的に実際に起こるのビューにスクロールするのを待つ必要があるかもしれません

答えて

0

すべての回答ありがとうございます。私は要素(by.CssContainingText(cssSelector、searchText))ロケータを使用してこの問題を解決することができました。

1

browser.actions()

browser.driver.executeScript("arguments[0].scrollIntoView()", myHiddenElementInScroller.getWebElement()).then(function() { 
    myHiddenElementInScroller.click(); 
}); 

か、を:

いくつかのシナリオで
browser.actions().mouseMove(myHiddenElementInScroller).click().perform(); 
+0

私は両方の選択肢を試しましたが、それでも同じ問題があります。 – G1P

1

我々が探している要素がカバーされますDOMからのいくつかの他の要素が含まれています。分度器がクリックしようとすると、実際の要素をカバーする要素によってクリックが受信されます。だから、そのような状況では、ネイティブのjavascriptのクリックイベントを使用する必要があります。以下のコードを見てください。

browser.executeScript("arguments[0].click()", myHiddenElementInScroller.getWebElement()) 

上記のコードは、表示されているかどうかにかかわらず、前述のwebElementに直接クリックイベントを送信します。

注:これは、要素をクリックするための推奨方法ではありません。クリックイベントを達成するための他の回避策がないシナリオではこれを行うことができます。

+0

@sudharshanありがとうございます。 – G1P

+0

@ G1Pこのアプローチの長所と短所については、このスレッドを参照してください。http://stackoverflow.com/questions/34562061/webdriver-click-vs-javascript-click – alecxe

+0

@sudharshanalecxe、これも試しましたが、無限スクロールの12番目の要素をクリックしても成功しませんでした。 – G1P

関連する問題