selenium库的使用(十六):截图操作

使用selenium对当前窗口或当前定位元素进行截图操作

当前窗口截图

方法

保存为PNG格式

1
2
driver.get_screenshot_as_file(filename)
driver.save_screenshot(filename)

filename :文件路径,应以 .png 结尾

保存为二进制格式

1
driver.get_screenshot_as_png()

保存为base64编码格式

1
driver.get_screenshot_as_base64()

这在HTML中的嵌入图像很有用

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import time
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options


options = Options()
options.add_argument('--headless')
options.add_argument(
'user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36')

driver = Chrome(options=options)

# 访问网页
driver.get('https://www.gaoyuanqi.cn/python-html-1/#more')
time.sleep(3)

# PNG格式
driver.get_screenshot_as_file('./aa.png')
driver.save_screenshot('./bb.png')

# 二进制
print(driver.get_screenshot_as_png())

# base64编码
print(driver.get_screenshot_as_base64())

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

当前元素截图

元素需可见

方法

保存为PNG格式

1
driver.screenshot(filename)

filename :文件路径,应以 .png 结尾

保存为二进制格式

1
driver.screenshot_as_png

保存为base64编码格式

1
driver.screenshot_as_base64

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import time
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options


options = Options()
options.add_argument('--headless')
options.add_argument(
'user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36')

driver = Chrome(options=options)

# 访问网页
driver.get('https://www.gaoyuanqi.cn/python-html-1/#more')
time.sleep(3)


# 通过元素的class属性定位图片
webelement_image = driver.find_element_by_class_name('tu_pian')
# 通过元素的class属性定位文本链接
webelement_text = driver.find_element_by_class_name('text_url')

# PNG格式
webelement_image.screenshot('./image.png')
webelement_text.screenshot('./text.png')

# 二进制
print(webelement_image.screenshot_as_png)
print(webelement_text.screenshot_as_png)

# base64编码
print(webelement_image.screenshot_as_base64)
print(webelement_text.screenshot_as_base64)

# 关闭浏览器
driver.quit()