解决措施:降低selenium的版本
如果你想看原因的话,就继续往后看
又是找BUG的一天,太头疼了
最近在练习爬虫,然后碰到一个验证码才能登录的,是那种点击文字的验证码,就想到使用超级鹰去做,不得不说超级鹰是真的香~~~~
在利用超级鹰得到坐标后,然后使用
action.move_to_element_with_offset(img_el, xx, yy).click().perform()
这条语句竟然点不到?我直接傻了,然后多试验了几次,为了避免超级鹰的分用完了,我直接先固定坐标看看到底为什么点不到,
就试了下面这种方案:
code_str = '20,20|20,50|20,90|20,120'
print(code_str)
code_list = code_str.split('|')
for position in code_list:
xx = int(position.split(',')[0])
yy = int(position.split(',')[1])
print(f"x:{xx}")
print(f"y:{yy}")
# move_to_element_with_offset().click() 是根据坐标去点击 记住一定要加 perform() 要让它执行
ActionChains(web).move_to_element_with_offset(img_el, xx, yy).click().perform()
time.sleep(1)
可见我设置了四个左边,分别为:(20,20) ,(20,50),(20,90),(20,120)
然后到浏览器中一看:
发现在正中间,难怪刚刚点不到,x,y稍微大一点,就点到外面去了
然后降了selenium的版本,改成了4.0.0版本
就变成了:
就又到左上角了,这样子就能又点到文字了,大功告成,顺便提醒一下,万一还是没有点到相应的位置,但是个数差不多了,可以多试几次,可能是超级鹰的识别问题



