2017-06-23 52 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滾動 –

+0

請提供腳本我需要嘗試使用Java腳本。 –

+0

這滾動到頁面底部 - > 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 

For 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

希望幫助!