selenium 如何截长图

您可以使用Selenium中的get_screenshot_as_file方法来截取长图。但是该方法只能截取当前网页可见区域的截图,如果需要截取整个页面的长图,您可以使用一些其他的方法,比如滚动截图。下面是一个使用滚动截图的示例代码:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

# 实例化浏览器驱动
driver = webdriver.Chrome()

# 打开网页
driver.get('http://example.com')

# 设置滚动截图的页面高度
scroll_height = driver.execute_script('return document.body.scrollHeight')

# 设置窗口大小
driver.set_window_size(1366, scroll_height)

# 遍历滚动截图的每个位置,进行截图
scroll_position = 0
while scroll_position < scroll_height:
    # 滚动窗口
    driver.execute_script('window.scrollTo(0, arguments[0]);', scroll_position)
    
    # 截图
    driver.get_screenshot_as_file('screenshot.png')

    # 逐步向下滚动
    scroll_position += 500
    ActionChains(driver).move_by_offset(0, scroll_position).perform()

# 关闭浏览器驱动
driver.quit()

上述代码使用Chrome浏览器作为示例,您可以根据需要更换为您使用的浏览器驱动。最后,您可以在代码中指定保存截图的文件名和位置。