2017-06-23 56 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

希望帮助!