【发布时间】:2018-05-17 22:36:49
【问题描述】:
我需要截取整个网页的屏幕截图。这里的重要部分是我需要屏幕截图来包含屏幕上无法显示的页面的全部内容。
数据包含多行(行)数据,由于数据长度较长,所以有一个滚动条。每次的行数都不一样,截图应该有相应的依据。
对于滚动的长网页,执行此任务很简单。但是当数据很大并且在滚动条下时如何完成。
我想使用Python 完成此操作。我正在使用以下代码使用 Python 捕获网页的屏幕截图。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_argument('window-size=1440x1440')
driver = webdriver.Chrome(executable_path=os.path.abspath('C:/Program Files (x86)/Python36/selenium/chromedriver/build/scripts-3.6/chromedriver.exe'),chrome_options=options)
driver.get("https://www.test.com") ##updated as a random test URL
time.sleep(60);
driver.save_screenshot('C:/Users/Dev/Desktop/Maxx/Snapshots/test.png')
driver.quit
print ("captured snapshot")
关于它在带有滚动条的浏览器上的外观数据。
【问题讨论】:
-
继续滚动..不要忘记 selenium 只是一个浏览器模拟器
driver.execute_script("window.scrollTo(0,{0})".format(scrollHeight)) -
问题中的截图只是网页的一部分。网页的前半部分包含一些图表,网页的下半部分包含包含与这些图表相关的数据的表格。
-
@user1767754 尝试使用您提到的命令,仍然看到快照中的滚动条,而不是完整的数据列表。
-
这可能是你最小的问题......你可以覆盖 css 或只使用 opencv 裁剪这部分
标签: python selenium-webdriver screenshot