2017-06-23 23 views
2

Trying to scroll tab 4.Pythonのセレン:スクロールのiframe内は

こんにちは、私はすべての要素を、タブを切り替えるアクセスできるようにしています。このiframeでスクロールできません。スクリプトはエラーなしで実行されます。しかし、スクロールは起こっていません。助けてください。私が使用しているコードは次のとおりです。

# switching to iframe 
    iframe = self.browser.find_elements_by_tag_name('iframe')[0] 
    self.browser.switch_to_frame(iframe) 
    time.sleep(1) 

    #clicking tab 4 
    self.force_click('xpath=/html/body/div/md-content/md-tabs/md-tabs-wrapper/md-tabs-canvas/md-pagination-wrapper/md-tab-item[4]/span') 
    time.sleep(4) 

    #scrolling 
    elm = self.browser.find_elements_by_tag_name('html') 
    elm[0].send_keys(Keys.END) 

iframeのHTMLは次のとおりです。

<iframe id="widget-iframe" class="widget-iframe" frameborder="0" ap-onunload="vm.onFrameUnload()" ap-onload="vm.onFrameLoad()" ng-src="/apps/launchpad-view-widget/" src="/apps/launchpad-view-widget/"> 
    <!DOCTYPE html> 
    <html class="ng-scope" ng-app="launchpadViewWidget"> 
    <head> 
    <body> 
    </html> 
</iframe> 
+0

そのiframeに切り替えた後にjavascript scrollを試すことができます –

+0

私はJavaスクリプトを使用してみる必要があるスクリプトを提供してください。 –

+0

これはpage-> driver.execute_script( "window.scrollTo(0、document.body.scrollHeight);")の一番下までスクロールします。 –

答えて

0

は、私はあなたがウィンドウのサイズを大きく設定することを提案するので、あなたは文句を言わないスクロールする必要が

self.browser.set_window_size(1920,1080)#(4096, 3112) <-4k resolution(if needed) 

- 編集:

また、ブラウザからのHTMLコードを取得し、それを管理することができますBeautifulSoup

html_source = browser.page_source 

python2.xi recomend

html_source = browser.page_source.encode('utf-8') 

次に、スクロールすることなくテーブルを探します。

+0

ありがとうございます。しかし、私のテーブルのサイズが4kの制限を超えてしまうと、再び行を見逃してしまうかもしれないと心配しています。 –

+0

とにかく、スクロールせずに完全なHTMLページソース(現在のウィンドウに隠れている部分を含む)を取得できますか? –

+0

@ unnikrishnan.v私の答えを編集しました。 – Wonka

0

これまでに私はこの問題に遭遇しました。私はスクロールエリアを過ぎた値を見ることができませんでした。解決策は、JSONを介してテーブルにデータを取り込むjavascriptオブジェクトを取得することでした。あなたはjavascriptexecutorを使ってこれを行うことができます:driver.execute_script

希望に役立ちます!

関連する問題