selenium中使用location无法定位验证码

selenium中使用location无法定位验证码

问题描述

使用python+selenium截屏并定位验证码元素失败

解决方案

  1. 修改电脑显示大小设置为100%:
    win10缩放比例修改:桌面右键 ->显示设置-> 缩放与布局
  2. 修改Image.crop参数,将参数元组的四个值都乘以缩放比例
    缩放比例为150%,每个值乘以1.5

代码示例

#打开谷歌浏览器
    browser=webdriver.Chrome(r'd:/chromedriver.exe')
    #打开首页
    browser.get('http://localhost:8080/jpress/user/register')
    #窗口最大化
    browser.maximize_window()
    #获取验证码图片
    t=time.time()
    picture_name1=str(t)+'.png'
    #截屏
    browser.save_screenshot(picture_name1)
    #验证码id
    cc=browser.find_element_by_id("captchaimg")
    print(cc.location)
    print(cc.rect)
    ##########第一种写法
    k=1.5
    #确定左顶点坐标
    left=ce.location['x']*k
    top=ce.location['y']*k
    #确定右底点坐标
    right=ce.size['width']*k+left
    height=ce.size['height']*k+top
    # 将图片打开
    im = Image.open(picture_name1)
    # 抠图
    img = im.crop((left,top,right,height))
    ##########第二种写法
    # location=ce.location
    # size=ce.size
    # k = 1.5
    # loc = (location['x'] * k, location['y'] * k, location['x'] * k + size['width'] * k, location['y'] * k + size['height'] * k)
    # #将图片打开
    # im=Image.open(picture_name1)
    # #抠图
    # img=im.crop(loc)

    t=time.time()
    #抠图后保存为第二张图片
    picture_name2=str(t)+'.png'
    img.save(picture_name2)#截取到的验证码图片
    browser.close()
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值