我想使用 Selenium WebDriver 捕获特定 Web 元素的屏幕截图,并将其文本内容与现有文本数据进行比较。那么,截屏后如何访问屏幕截图的文本内容?而且,我想使用 XPath 或任何其他选择器方法,因为该元素没有 ID。谢谢。
我们可以截取 WebElement(给定示例中的 img 标签)的屏幕截图,它是一个验证码,要阅读截取的屏幕截图上的文本,我们可以使用库 ddddocr.
这里是解决方案,
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