1,打开chorm控制台,找到相应的位置然后在元素上复制,选择最后一个保存完整xpath路径就可以啦
/html/body/div/div/div[3]/form[1]/div[3]/div/div[1]/span/span/span/img
2,然后在playwright中可以对验证码进行截图,这样就方便我们后续的验证码识别啦
page.locator('//html/body/div/div/div[3]/form[1]/div[3]/div/div[1]/span/span/span/img').screenshot(path='yzm.png')
3,本节code
import re
from playwright.sync_api import Playwright, sync_playwright, expect
import ddddocr
from PIL import Image
def test_login(playwright: Playwright) -> None:
browser = playwright.chromium.launch(headless=False)
context = browser.new_context()
page = context.new_page()
page.goto("https://******.com/login")
page.get_by_placeholder("请输入您的账号").fill("administrator")
page.get_by_placeholder("请输入您的密码").click()
page.get_by_placeholder("请输入您的密码").fill("*******")
page.get_by_role("textbox", name="请输入验证码").click()
#page.get_by_role("textbox", name="请输入验证码").fill("5778")
page.locator('//html/body/div/div/div[3]/form[1]/div[3]/div/div[1]/span/span/span/img').screenshot(path='yzm.png')
yzm=Image.open("yzm.png")
imageRGBA=yzm.convert("RGBA")
imageL=imageRGBA.convert("L")
imageL.save("yzm.png")
ocr=ddddocr.DdddOcr()
with open("yzm.png",'rb')as f:
img_bytes=f.read()
text=ocr.classification(img_bytes)
print(text)
page.get_by_role("textbox", name="请输入验证码").fill(text)
# ---------------------
context.close()
browser.close()
4,终于实现登录验证啦