java 如何对网页元素进行屏幕截图并比较其文本内容?

ddrv8njm  于 2023-03-06  发布在  Java
关注(0)|答案(1)|浏览(144)

我想使用Selenium WebDriver捕获特定Web元素的屏幕截图,并将其文本内容与现有文本数据进行比较。那么,捕获屏幕截图后,我如何访问屏幕截图的文本内容?而且,我想使用XPath或任何其他选择器方法,因为元素没有ID。谢谢。

gcxthw6b

gcxthw6b1#

我们可以截取WebElement的屏幕截图(在给定示例中是一个img标记),它是一个验证码,为了阅读所截取屏幕截图上的文本,我们可以使用库dddddocr
这是解决办法

from selenium import webdriver
from selenium.webdriver.common.by import By

import ddddocr

driver = webdriver.Chrome()

driver.get('https://ma.mohw.gov.tw/masearch/')

captcha = driver.find_element(By.ID, "ctl00_ContentPlaceHolder1_ImageCheck")
captcha.screenshot(f'captcha.png')

ocr = ddddocr.DdddOcr()
# open and read the image
with open(f'captcha.png', 'rb') as f:
    img_bytes = f.read()

res = ocr.classification(img_bytes)
print(res.upper())
>> PUT7

相关问题