httplib_response = conn.getresponse(buffering = True)TypeError:getresponse()使用Selenium获得了意外的关键字参数'buffering'?

时间:2018-11-27 13:19:50

标签: python selenium firefox geckodriver httplib

我试图在亚马逊上找到一个元素

def find_amazon_element():
    driver = webdriver.Firefox(executable_path=os.path.join('geckodriver'))
    driver.maximize_window()
    time.sleep(5)
    driver.get(url='https://www.amazon.com')
    input_field = driver.find_element_by_xpath('//*[@id="twotabsearchtextbox"]')
    search_button = driver.find_element_by_xpath('/html/body/div[1]/header/div/div[1]/div[3]/div/form/div[2]/div/input')
    input_field.send_keys('vase')
    search_button.click()
    time.sleep(5)
    driver.quit()

if __name__ == "__main__":
    find_amazon_element()

但我收到此错误

httplib_response = conn.getresponse(buffering=True) TypeError: getresponse() got an unexpected keyword argument 'buffering'

1 个答案:

答案 0 :(得分:1)

此错误消息...

httplib_response = conn.getresponse(buffering=True) TypeError: getresponse() got an unexpected keyword argument 'buffering'

...表示 getresponse() 方法具有意外的关键字参数缓冲

根据讨论unexpected keyword argument 'buffering' - python client,此异常不是导致您停止测试执行的异常的来源,但实际上是在发生其他异常时处理该异常。

也许完整的 Traceback 可以帮助我们以更好的方式调试问题。

但是,我敢肯定,如果您浏览 Traceback ,您会发现一行 ...在处理上述异常期间,发生了另一个异常:... 并显示错误:

Caused by <class 'ConnectionResetError'>:
    [WinError 10054] An existing connection was forcibly closed by the remote host)

根据讨论urllib3.exceptions.ProtocolError: ('Connection aborted.', error(10054, 'An existing connection was forcibly closed by the remote host')),由于所使用的二进制版本之间存在不兼容,因此会引发此错误。

解决方案

请确保您所使用的二进制文件的版本与下图兼容

supported_platforms_geckodriver