好友
阅读权限25
听众
最后登录1970-1-1
|
本帖最后由 txq0211 于 2022-3-29 08:25 编辑
抛砖引玉,验证码识别不是每一次都对的。
因此,遇到识别出错的时候,我们需要刷新页面或者验证码,重新登陆。
尝试了好几种方式,最后,正确的方式,请大神指正。
[Python] 纯文本查看 复制代码 from selenium import webdriver
import ddddocr
from selenium.webdriver.chrome.service import Service
from time import sleep
from webdriver_manager.chrome import ChromeDriverManager
# 1、自动安装对应版本的Webdriver
s = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=s)
if __name__ == '__main__':
href = "https://v6.siyucms.com/admin/Login/index"
while True:
# 2、打开指定的网页,最大化
driver.get(href)
driver.maximize_window()
sleep(0.5)
# 3、获取验证码ID
code_png_lel = driver.find_element_by_id('LAY-user-get-vercode')
# 4、不用全屏截图,只把验证码所在元素保存为png图片
code_img = code_png_lel.screenshot_as_png
# 5、利用弟弟获取验证码
ocr = ddddocr.DdddOcr()
code = ocr.classification(code_img)
# 6、填写账号和验证码(已保存的可不填)
# driver.find_element_by_name("username").send_keys("test")
# driver.find_element_by_name("password").send_keys("123456")
driver.find_element_by_name("vercode").send_keys(code)
sleep(0.2)
# 7、登录
driver.find_element_by_xpath("//button").click()
sleep(2)
# 8、2秒后获取当前页面的url
currentPageUrl = driver.current_url
print("当前页面的url是:", currentPageUrl)
# 9、判断当前url是否等于初始href,如果相等,刷新(弹窗问题用刷新处理)再无限循环
if currentPageUrl == href:
driver.refresh()
else:
break
# 9、关闭浏览器并退出
driver.close()
疑难杂症求助:
selenium+接口测试验证的时候,输入正确的验证码返回值也是报错。
问题已解决,感谢hecoter提供通过接口的解决方式。
贴已置顶,请大家往下看。
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|