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>
我建议你设置窗口大小大,所以你不会有滚动
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')
然后找到你想要的表格,而不用关心滚动。
谢谢,这是现在工作。但是我担心如果我的表格大小超出了4k的限制,它可能会再次错过行。 –
无论如何,我可以在不滚动的情况下获得完整的html页面源代码(包括隐藏在当前窗口中的部分)? –
@ unnikrishnan.v编辑我的答案。 – Wonka
我以前碰到过这个。我看不到滚动区域的值。解决方案是获取通过JSON填充表的JavaScript对象。你可以使用javascriptexecutor来做到这一点:driver.execute_script
希望帮助!
你可以尝试切换到该iframe后的JavaScript滚动 –
请提供脚本我需要尝试使用Java脚本。 –
这滚动到页面底部 - > driver.execute_script(“window.scrollTo(0,document.body.scrollHeight);”) –