ボタンをクリックするとウェブページ内の次のセクションにスクロールするウェブページがあります。誰かがスクロールをキャプチャする方法を提案してもらえますか?コードはアンカータグにあり、hrefは#を指してページの次のセクションにスクロールします。スクロールが実際に動いたかどうかを検証する方法がわかりません。ボタンをクリックしてスクロールをキャプチャする
3
A
答えて
2
あなたが主張することができます/は、この場合にはいくつかのことを確認してください。
expect(browser.getCurrentUrl()).toEqual("https://url.com/mypage#myparagraph");
current URLが正しい
#
セクションを指すようにスクロールされたもの、または他のスクロール可能なコンテナ):var body = $("body"); expect(body.getCssValue("scrollTop")).toEqual("someValue"); // or apply the "greater than" check
window.pageYOffset
を使用するように提案をもとにcurrent active element(「アンカー」の段落が活発化されると焦点を当てた要素があると仮定した場合)ソリューションチェック - クリックする前と後の値を比較します
をbrowser.executeScript('return window.pageYOffset;').then(function (offsetBefore) { offsetBefore = parseInt(offsetBefore); button.click(); browser.executeScript('return window.pageYOffset;').then(function (offsetAfter) { offsetAfter = parseInt(offsetAfter); expect(offsetAfter).toBeGreaterThan(offsetBefore); }); });
3
あなたはアンカーがgetBoundingClientRect()
でビューポートに位置決幅を相対的に確認することで、ウィンドウの一番上にスクロールされていることを確認することができます:
browser.get('https://www.w3.org/TR/webdriver');
$("[href='#capabilities']").click();
// assert that the position of the anchor relative to the top border of the window is less than 16 pixels.
var anchor = $('#h-capabilities');
var isCloseToTop = browser.executeScript(e => !(e.getBoundingClientRect().top >> 4), anchor);
expect(isCloseToTop).toBeTruthy();
アンカーがドキュメントの一番下にある場合、アンカーはウィンドウの上部になく、内部のどこかにあることに注意してください。 この場合も、より汎用的な解決策を検討する必要があります。
browser.get('https://www.w3.org/TR/webdriver');
$("[href='#informative-references']").click();
expect(isScrolledTop($('#h-informative-references'))).toBeTruthy();
function isScrolledTop(element) {
return browser.executeScript(function(elem) {
var doc = elem.ownerDocument,
viewHeight = doc.defaultView.innerHeight,
docBottom = doc.documentElement.getBoundingClientRect().bottom,
box = elem.getBoundingClientRect();
return box.top > -1 && (box.top < 25 || (docBottom - viewHeight) < 25);
}, element);
}
関連する問題
- 1. ボタンをクリックしてUIScrollViewをスクロールする
- 2. ボタンをクリックしてスクロールする
- 3. apkでスクロールした後にボタンをクリック
- 4. ActiveXボタンのワークシート名のキャプチャをクリック
- 5. ボタンをクリックしてnestedscrollviewのTextviewにスクロールします。
- 6. HTML DIVを右クリックしてキャプチャする
- 7. ボタンをクリックしてウェブカメラから画像シーケンスをキャプチャするためのコード
- 8. UINavigationControllerが戻るボタンをクリックするとスクロールします
- 9. javascriptボタンをクリックしてasp.netボタンをクリック
- 10. ボタンをクリックしてページをポストバックした後にページをスクロール/移動する?
- 11. ボタンをクリックするとGridViewが上下にスクロールしますか?
- 12. ボタンをスクロールしてウェブサイトをスムーズにスクロール
- 13. 検索ボタンをクリックした後、セレニウムでhtml要素をキャプチャ
- 14. IOSのボタンをクリックするとiframeがスクロールしません
- 15. jQueryでボタンをクリックしたときにスクロールする方法
- 16. Template10で無視したボタン内のボタンのクリックをキャプチャするボタンを無視する方法は?
- 17. ボニータスタジオのシンプルなボタンのクリックをキャプチャするには?
- 18. ボタンをクリックしてボタンをクリックすると
- 19. セレン - ボタンのクリックによる水平スクロール
- 20. 別のボタンをクリックしたときにボタンをスクロールしますか?
- 21. iPhone SDKのボタンをクリックしてScrollViewを水平方向にスクロールする方法
- 22. UITableViewをイメージとしてキャプチャする - スクロールする
- 23. ボタンでスクロールしてセクションをジャンプする
- 24. javascript、withouth wmodeを右クリックしてキャプチャ
- 25. クリックしたツリービューノードをキャプチャする方法
- 26. スクロールボタンをスクロールして右ボタンをスクロールする
- 27. クリックしてjqueryをスクロールしますか?
- 28. asp:Response.WriteLineをキャプチャするボタン
- 29. ボタンのクリックまでウィンドウのスクロールを防止します
- 30. UISmrollをUIImageにキャプチャしてスクロールしています
残念ながら、これらのどれも私の仕事はありません。 1.ブラウザのURLが変更されていないため、最初は使用できません。以前と同じままです。 2. scrollTopの位置を確認できません。以下のコマンドは私のアプリケーションでは動作しません。私は以下のコードを使用し、コマンドの長いリストをいくつか出力します。 '' var body = $( "body"); var scrollposition = body.getCssValue( "scrollTop"); console.log(スクロール位置)。 '' .ElementFinder { browser_: ProtractorBr 3.ボタンをクリックすると、ブラウザはどの要素にも集中していません。それは地図を表示するだけです。私はそれが焦点になるとは思わない – NewWorld
以下のソリューションはうまくいきましたが、スクリプト内の位置を指定したくありませんでした。別の環境で実行されるとスクリプトが失敗する恐れがあります。 'browser.executeScript( 'return window.pageYOffset;')。then(function(pos){ expect(pos).toBe(829)}); ' もっと良い解決策があるかどうか教えてください。 – NewWorld
@NewWorldああ、まあ、クリック前と後で値を比較する前に 'pageYOffset'値を取得することができます。希望が役立ちます。 – alecxe