python3 使用 selenium 截屏后再截取指定坐标图片定位不准确是为什么

想截取一下验证码的图片,但是截图后和验证码的位置不对应,不知道是不是写法有问题,还是有其余的因素在影响,selenium 用的 Chrome 浏览器
附上操作代码
browser.save_screenshot(\’bdbutton.png\’)
element = browser.find_element_by_xpath(\’//*[@id=\”login-yzm_img\”]\’) # 找到验证码图片
print(element.location) # 打印元素坐标
print(element.size) # 打印元素大小
left = element.location[\’x\’]
top = element.location[\’y\’]
right = element.location[\’x\’] + element.size[\’width\’]
bottom = element.location[\’y\’] + element.size[\’height\’]

im = Image.open(\’bdbutton.png\’)
im = im.crop((left, top, right, bottom))
im.show()
im.save(\’bdbutton.png\’)

相关文章

10 thoughts on “python3 使用 selenium 截屏后再截取指定坐标图片定位不准确是为什么

  1. 留个网址? 我试试我直接原生 cdp 截图准不准

    如果盲猜的话, 怀疑和截图参数 scale 有关, 但是不确定 selenium 走的是 driver 内置的截图还是也同样走了 cdp

  2. @littlepython #6 代码就是随手发的, 因为我没用 selenium, 走的是默认的 Chrome cdp, 可以忽略

    我前面说的 scale 参数就是页面缩放的问题, 你要么把 scale 改为 1, 要么就通过 selenium 或者 js 拿到当前缩放 scale 值, 在截图时候传入正确的就可以了

发表评论

电子邮件地址不会被公开。 必填项已用*标注