尝试使用selenium从站点上停止验证码时出错

时间:2018-03-29 21:55:04

标签: python selenium chrome-web-driver

我正在网页抓取很多网页。有时会显示一个警告框。我使用

通过这些警报框
browser.switch_to.alert.accept() 

但是在我通过很多页面后,会出现一个验证码框。当我通过警告框switch_to.alert.accept时,代码也会在出现时显示(不验证)。

出现此验证码时,我无法停止。我想在验证码出现时结束代码的运行,以防止自己被网站阻止。

如何传递盒子并停在验证码上(并获取下面的错误)? 当我评论句子时,以下算法有效。下面的代码片段可以在页面中找到验证码。

 print 'FIND ELEMENT?:'+browser.find_elements_by_xpath("//div[@class='phm _1yw']")

算法:

for index, element in enumerate(result):
    browser.get(WEBSITEa_URL+element)

    try:
        send= browser.find_elements_by_xpath("//div[@class='notranslate _5rpu']")[0] 
            send.send_keys(config.message+Keys.ENTER)
        except Exception as f:
            time.sleep(2)

            print 'FIND ELEMENT?:'+browser.find_elements_by_xpath("//div[@class='phm _1yw']")

            print 'AAA'
            browser.switch_to.alert.accept()
显示在提示符上的

消息:

ENVIOU MENSAGEM PARA 100002557631967 5
Traceback (most recent call last):
print 'ACHOU?:'+browser.find_elements_by_xpath("//div[@class='phm _1yw']")
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 344, in find_element_by_id
return self.find_element(by=By.ID, value=id_)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 858, in find_element
'value': value})['value']
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 311, in execute
self.error_handler.check_response(response)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 237, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.UnexpectedAlertPresentException: Alert Text: None

Message: unexpected alert open: {Alert text : }
(Session info: chrome=68.0.3440.106)
(Driver info: chromedriver=2.36.540470 (e522d04694c7ebea4ba8821272dbef4f9b818c91),platform=Windows NT 6.3.9600 x86_64)

0 个答案:

没有答案