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

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

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

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'

这个错误信息...

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

...意味着 getresponse() 方法得到了一个意外的关键字参数 buffering.

根据讨论unexpected keyword argument 'buffering' - python client,这个异常不是停止你的测试执行的异常的来源,但它实际上是在另一个异常时被处理的发生了。

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

但是,我敢肯定,如果您通过 Traceback 进行下去,您会发现一行,...在处理上述异常期间,发生另一个异常:... 错误:

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

根据讨论 ,此错误是由于您正在使用的二进制文件版本之间 不兼容 引起的。

解决方案

确保您使用的二进制文件版本兼容,如下图所示: