angel|sherry 发表于 2021-2-24 16:12:28

selenium做网页自动化

1.目前采用的调用百度API识别验证码,准确率还行,但反馈速度不高,有没有更好的方案
2.流程:
        a.时钟元素消失,自动点“确定”
        b.循环判断验证码是否存在
        c.如果验证码存在,循环结束,调用百度API识别,填写验证码,提交
        d.如果验证码不存在,则time.sleep(0.2),继续循环
由于确定点完到出现验证码有一个时间间隔,且受服务器压力波动不固定,无法设time.sleep
想通过识别元素是否存在来判断下一步操作,但实操发现判断这里永远失败,不知道代码哪错了,请教大师
#自动过验证
def grab_solt():
    browser.find_element_by_xpath('//*[@id="onDiv1"]/div/span/button').click()
    print(datetime.datetime.now())
    #判断验证码是否出现
    #flag = True
##
    #while flag:
    #    #//*[@id="codeShow"]
    #    if browser.find_element_by_xpath('//*[@id="codeShow"]').is_displayed()== True:
    #      print("已经出现验证码")
    #      flag = False
    #    else:
    #      print("还未出现验证码")
    #      #flag = True
    #      time.sleep(0.2)
            
            
   
   

qiuyouzhi 发表于 2021-2-24 16:15:48

可以试试WebdriverWait和Expected_Conditions结合使用

angel|sherry 发表于 2021-2-24 16:19:52

qiuyouzhi 发表于 2021-2-24 16:15
可以试试WebdriverWait和Expected_Conditions结合使用

能具体举个例子吗

qiuyouzhi 发表于 2021-2-24 16:20:57

angel|sherry 发表于 2021-2-24 16:19
能具体举个例子吗

你可以百度查下用法

kogawananari 发表于 2021-2-24 18:58:20

WebDriverWait(driver, timeout).until(
      expected_conditions.presence_of_element_located((By.ID, img_id)))
页: [1]
查看完整版本: selenium做网页自动化