嗨,我可以在标签之间切换,访问所有元素。我无法滚动此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 :(得分:0)
我建议你将窗口大小设置得更大,这样就不必滚动
了self.browser.set_window_size(1920,1080)#(4096, 3112) <-4k resolution(if needed)
- 编辑:
也可以从浏览器获取HTML代码并使用BeautifulSoup
进行管理html_source = browser.page_source
对于python2.x我建议
html_source = browser.page_source.encode('utf-8')
然后找到你想要的表而不关心滚动。
答案 1 :(得分:0)
我之前遇到过这种情况。我无法看到滚动区域之后的值。解决方案是获取通过JSON填充表的javascript对象。您可以使用javascriptexecutor执行此操作:driver.execute_script
希望有所帮助!