使用selenium模拟知乎登录,解决验证码与文字障碍

def cacule_xy(num):
    alpha = 21             #利用selenium的location方法获得图片的坐标,计算相邻文字的中心距离
    all_alpha = []         #需要点击的文字的距离列表
    first = int(num[0])        #获取第一个点
    all_alpha.append(int(num[0])*21)      
    for x in num[1:]:               
        all_alpha.append((int(x)-first)*alpha)        #步长是在原先的坐标点基础上增加
        first = int(x)                               #-》[155,100]->[176,100]
    return all_alpha                                   

begin_loc = browser.find_element_by_css_selector('.Captcha-chineseImg').location
            begin_y = begin_loc['y']+21
            #time.sleep(3000)
            dict_xy = input("请输入需要点击的顺序字符串")
            xy_set = cacule_xy(dict_xy)
            for j in xy_set:
                ActionChains(browser).move_by_offset(begin_loc['x']+j, begin_y).click().perform()
                begin_y = 0
            browser.find_element_by_css_selector('.Button.SignFlow-submitButton').click()
            

ActionChains用于模拟鼠标点击,参数为浏览器驱动(selenium),单击后鼠标会停留,所以需要在上一次点击的坐标上计算

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值