Selenium 2.53.5 httplib.BadStatusLine: ” Python

Estoy intentando automatizar el registro de números de serie en un formulario en línea usando Selenium 2.53.5 en Python 2.7. La secuencia de comandos ha estado funcionando durante más de 2 meses, pero ayer comencé a recibir un error justo cuando lo ejecuto: httplib.BadStatusLine: ”. ¿Hay alguna solución conocida para esto? He leído que los caracteres de línea nueva / anterior pueden desordenar la recuperación de la URL, pero parece que no puedo identificar el problema.

Código:

import sys import time from selenium import webdriver from selenium.webdriver.chrome.options import Options class SerialSet: def __init__(self, fileName, driverPath, user, password): self.fn = fileName self.failedSerials = [] self.driver = webdriver.Chrome(driverPath) self.aloSuccess = False self.user = user self.password = password def parseSerialFile(self): with open(self.fn, 'r') as f: self.serials = [line.strip() for line in f] def setCountrySN(self, serial, driver): driver.find_element_by_xpath("//select/option[@value='USA']").click() driver.find_element_by_id("serialno").send_keys(serial) driver.find_element_by_xpath("//input[@value='Continue'][@type='button']").click() def submitState(self, driver): driver.find_element_by_xpath("//select/option[@value='CT']").click() driver.find_element_by_id("Continue1").click() def login(self, driver): driver.find_element_by_xpath("//*[@id='accountname']").send_keys(self.user) driver.find_element_by_xpath("//*[@id='accountpassword']").send_keys(self.password) driver.find_element_by_xpath("//*[@id='signInHyperLink']").click() def initiateSN(self, serial, driver): # select country and enter serialno driver.get("http://supportform.apple.com/201110/") self.setCountrySN(serial, driver) # enter login time.sleep(3) if driver.current_url == "http://supportform.apple.com/201110/": return False self.login(driver) # select state and continue time.sleep(3) self.submitState(driver) # final submit time.sleep(3) driver.find_element_by_id("finalContinue").click() return True def newSN(self, serial, driver): # select country and enter serialno driver.get("http://supportform.apple.com/201110/") self.setCountrySN(serial, driver) # select state and continue time.sleep(3) if driver.current_url == "http://supportform.apple.com/201110/": return False self.submitState(driver) # final submit time.sleep(3) driver.find_element_by_id("finalContinue").click() return True def automateSerials(self): for i in self.serials: if self.aloSuccess == False: if not self.initiateSN(i, self.driver): self.failedSerials.append(i) del i else: self.aloSuccess = True else: if not self.newSN(i, self.driver): self.failedSerials.append(i) del i self.driver.quit() print(str(len(self.serials) - len(self.failedSerials)) + ":" + str(len(self.serials))) def main(): newSet = SerialSet(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4]) newSet.parseSerialFile() newSet.automateSerials() if __name__ == "__main__": main() 

Error:

 Traceback (most recent call last): File "automate.py", line 90, in  main() File "automate.py", line 85, in main newSet = SerialSet(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4]) File "automate.py", line 11, in __init__ self.driver = webdriver.Chrome(driverPath) File "/Library/Python/2.7/site- packages/selenium/webdriver/chrome/webdriver.py", line 67, in __init__ desired_capabilities=desired_capabilities) File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 90, in __init__ self.start_session(desired_capabilities, browser_profile) File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 177, in start_session response = self.execute(Command.NEW_SESSION, capabilities) File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 234, in execute response = self.command_executor.execute(driver_command, params) File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/remote_connection.py", line 401, in execute return self._request(command_info[0], url, body=data) File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/remote_connection.py", line 432, in _request resp = self._conn.getresponse() File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1132, in getresponse response.begin() File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 453, in begin version, status, reason = self._read_status() File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 417, in _read_status raise BadStatusLine(line) httplib.BadStatusLine: '' 

Asegúrese de usar la última versión de chromedriver: http://chromedriver.storage.googleapis.com/2.25/chromedriver_linux64.zip

Instalé Chromedriver 2.0 y obtuve este error,

cuando actualicé a 2.25 se deshizo de este error.