2016-09-08 3 views
1

私は分度器のテストに取り組んでいます。最近、私のウェブページは、利用規約がテキストボックスの中でどこで変更されました。ボタン送信は、ユーザーがテキストボックスをスクロールして「同意する」ボタンをクリックしたときにのみ機能します。私はスクロールするために以下のオプションを試しましたが、スクロールしていません。どんな助けでも大歓迎です。利用規約のテキストボックスを下にスクロールして、同意するセレクションをクリックしてください

var scrollbar = element(by.id('terms-conditions')); 
var checkbox = element(by.id('checkbox')); 

scrollbar.click() 

browser.executeScript('arguments[0].scrollIntoView()', scrollbar.getWebElement()); 
browser.executeScript('window.scrollTo(0,670);') 
checkbox.click(); 

私はあまりにも運がありません。

Protractor: Scroll down

+0

を提出し、その後表示される最初のボタンを作ることによって、このような何かをしようとすることができます。 executeScript( 'arguments [0] .scrollIntoView()'、チェックボックス); checkbox.click(); ' –

答えて

0

二jsのは、あなたが使用している文を実行ブラウザの開いているウィンドウを参照するWindow.scrollToが含まれています。そして、それを使用して唯一の完全なウィンドウをスクロールしますが、通常の契約条件

Window.scrollTo上のドキュメントのための hereを参照してください ブラウザウィンドウ内に表示されるポップアップがポップアップに表示またはDIVこととなり Window.scrollToありませんあなたがすることができる2つの方法があります

動作しないこと

SOLUTION 1:jqueryのscrollTopスプライト()は、特定のwebElement内にスクロールするために使用

ステップ1:あなたの条件を保持している正確なdiv要素を特定しますサービススクロール

ステップ2をバー:クロームコンソールに直接試みることによってあなたのjs文を絞り込み

$('.modal-body').scrollTop() - >これは $('.modal-body').scrollTop(10000)は、スクロールの現在位置を返します - >これはトップの位置の値を設定し

ステップ3:あなたの分度器スクリプトでこれを組み込むこと

browser.executeScript('$('.modal-body').scrollTop(10000)'); 

あなたは、引数として要素&スクロール量を渡すことで、これを専門化することができます。参照番号here

解決策2;私がポップアップを提出する最良の方法は、インターフェースを扱うのではなく、その背後にある 'フォーム'要素に対処することです。私たちは、ファイルを扱う方法と同様にuploads.No大騒ぎ&効果

は、ブラウザ `としてクリックボックス要素をチェック到達しようとする必要がありますフォーム

0

browser.executeScriptあなたはそれがチェックボックスをクリックする前に完了するようにcontrolFlowにそれを配置する必要がありますので、非同期呼び出しです:

scrollbar.click(); 
browser.controlFlow().execute(function() { 
    browser.executeScript('arguments[0].scrollIntoView()', scrollbar.getWebElement()); 
    browser.executeScript('window.scrollTo(0,670);'); 
}); 
checkbox.click(); 
+0

まだテキストボックスのスクロールバーがスクロールしていません:( – user2744620

関連する問題