python - 连接中止错误 : [WinError 10053] An established connection was aborted by the software in your host machine with GeckoDriver and Firefox

标签 python selenium firefox webdriver geckodriver

我正在使用下面的 python 脚本登录 Fedex 跟踪服务

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from time import sleep
driver = webdriver.Firefox()
driver.get("https://www.fedex.com/apps/fedextracking/?cntry_code=us&locale=us_en#")
sleep(5)
users = driver.find_element_by_xpath("//div[@class='fxg-field'][1]/input[@class='fxg-field__input-text']")
users.send_keys('test')
passwords = driver.find_element_by_xpath("//input[@id='pswd-input']")
passwords.send_keys('test')
sleep(3)
submit = driver.find_element_by_xpath("//button[@id='login']")
submit.click()

它没有显示确切的错误,但显示了这些错误:

File "test.py", line 10, in <module>
users = driver.find_element_by_xpath("//div[@class='fxg-field'][1]/input[@class='fxg-field__input-text']")
File "C:\Users\Home\AppData\Local\Programs\Python\Python35\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 393, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
File "C:\Users\Home\AppData\Local\Programs\Python\Python35\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 966, in find_element 'value': value})['value']
File "C:\Users\Home\AppData\Local\Programs\Python\Python35\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 318, in execute
response = self.command_executor.execute(driver_command, params)
File "C:\Users\Home\AppData\Local\Programs\Python\Python35\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 472, in execute
return self._request(command_info[0], url, body=data)
File "C:\Users\Home\AppData\Local\Programs\Python\Python35\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 495, in _request
self._conn.request(method, parsed_url.path, body, headers)
File "C:\Users\Home\AppData\Local\Programs\Python\Python35\lib\http\client.py", line 1083, in request
self._send_request(method, url, body, headers)
File "C:\Users\Home\AppData\Local\Programs\Python\Python35\lib\http\client.py", line 1128, in _send_request
self.endheaders(body)
File "C:\Users\Home\AppData\Local\Programs\Python\Python35\lib\http\client.py", line 1079, in endheaders
self._send_output(message_body)
File "C:\Users\Home\AppData\Local\Programs\Python\Python35\lib\http\client.py", line 913, in _send_output
self.send(message_body)
File "C:\Users\Home\AppData\Local\Programs\Python\Python35\lib\http\client.py", line 885, in send
self.sock.sendall(data)
ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine

它在 Google Chrome 上运行流畅,但不适用于 Firefox。请帮我解决这个问题。

编辑

Firefox 版本 57.0.4(64 位)

Selenium 版本 3.13.0

壁虎驱动程序 0.21.0

更新

问题只出在这个网站上。我尝试了其他跟踪站点,它们都使用 Firefox。此特定站点不适用于 Firefox。

最佳答案

您的代码块近乎完美。我采用了您自己的代码并进行了一些调整,其中包括在 USER ID 字段上调用 ​​send_keys() 之前引入 WebDriverWait,如下所示:

  • 代码块:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    driver = webdriver.Firefox(executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe')
    driver.get("https://www.fedex.com/apps/fedextracking/?cntry_code=us&amp;locale=us_en#")
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='fxg-field__input-text' and @name='USER']"))).send_keys('test')
    driver.find_element_by_xpath("//input[@class='fxg-field__input-text' and @name='PASSWORD']").send_keys('test')
    driver.find_element_by_xpath("//button[@class='fxg-button fxg-button--orange' and @name='login']/span").click()
    
  • 浏览器快照:

    • USER IDPASSWORD 字段正在填写:

fedex_1

  • 由于凭据错误导致的错误:

fedex_2

关于python - 连接中止错误 : [WinError 10053] An established connection was aborted by the software in your host machine with GeckoDriver and Firefox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51873603/

相关文章:

python 模拟库 - 在单元测试时修补类

linux - Linux上的Shell脚本运行java类

Python Selenium,如何保存http响应内容?

debugging - 您如何了解 JIT 代码中发生的情况?

css - SVG 定义的背景过滤器不会在 Safari/Chrome 上呈现

python - 尝试在 while 循环中设置 "wrong key pressed"错误

python - 如何通过引用 pandas 中具有列类型详细信息的其他表来更改列数据类型?

Python 矩阵 - 将矩阵限制在前 20 名

mysql - 如何告诉 Selenium 使用测试数据库?

javascript - 来自 Firefox 附加组件的内容脚本不会写入 IndexedDB