2016-09-13 13 views
3

Ubuntu 16.04 x64でPython 3.5のSeleniumのActionChains経由でPageDownキーを使用してスクロールする機能を使用するときに問題が発生しました。Selenium Page Down by ActionChains

私の希望は、プログラムがPageDownで2回スクロールするので、最後に最後に到達するため、常に表示できる要素を選択できます。 Keys.ENDを使用して別の機能を試してみましたが、機能しませんでした。そのため、ActionChainsとは何か関係がありません。

from selenium.webdriver.common.action_chains import ActionChains 

...

def scrollDown(self): 
    body = browser.find_element_by_xpath('/html/body') 
    body.click() 
    ActionChains(browser).send_keys(Keys.PAGE_DOWN).perform() 

と私はこのような別のファイルでそれを使用します:

機能は、次のようになります

mod.scrollDown() 

最初私はそれを使う時、スクロールするPageDownキーが押された場合と同じようにダウンし、別の時間は何も起こらない。 どこで呼び出すかは関係ありませんが、2番目(または3番目)の時間は実行されません。 手動で試して、PageDownボタンを2回押すと、正常に動作します。 IDEはコンソールにエラーを返しません。それは、アクションチェーンに関係している場合

+0

特定の要素までスクロールしますか? –

+0

別のdivをクリックして別の機能をクリックすると機能する可能性があります。しかし、これはエレガントではなく、再利用することはできません。 –

+0

いいえ、静的なページなので、PageDownのオフセットだけスクロールしたいだけです。 –

答えて

5

たぶん、あなたはこのようにそれを行うだけのことができます。

body = browser.find_element_by_css_selector('body') 
body.send_keys(Keys.PAGE_DOWN) 

は、それが動作ホープ!

+0

素晴らしいですが、これはうまくいくようです。アクションチェーンは、ページが読み込まれたときに毎回ロードされて再利用できないようです。ありがとう! –

+0

聞いてよかった、幸運! – Chai

関連する問題