【问题标题】:Socket errors during selenium scriptselenium 脚本期间的套接字错误
【发布时间】:2014-07-14 08:07:33
【问题描述】:

我最近制作了一个 selenium 脚本来自动化通过 Firefox 中的网页生成测试数据的过程。该脚本从命令行运行,您可以在其中指定所需的测试数据类型,并且在许多情况下,这使脚本需要大约 15 分钟才能运行。

在此期间,我经常收到以下错误,该错误会终止脚本的任何延续:

OSError: [WinError 10055] An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.

当使用 netstat -b 时,我可以看到 Firefox 正在使用大量的连接(如果不是几千,也有几百个),它们都处于 TIME_WAIT 状态。因此,我猜测我的脚本以某种方式消耗了系统上的所有可用端口,但我不确定为什么。

是否每个 selenium 操作都使用自己的连接?这些连接在脚本完成运行之前不会关闭吗?

【问题讨论】:

  • 在查找了 TIME_WAIT 的确切含义后,似乎这是每个套接字在关闭后进入的状态,并且它将保持此状态 2MSL 以确保重新使用此端口是安全的。因此,selenium 似乎确实关闭了连接,但它只是在很短的时间间隔内创建了太多的连接。是否有可能以某种方式规避这种行为?

标签: python firefox selenium


【解决方案1】:

从 firefox 切换到 chrome 似乎在一定程度上缓解了这个问题。 您仍然会在 TIME_WAIT 状态下获得很多连接,但由于某种原因,在使用 chrome 时这种状态下的连接似乎要少得多

【讨论】:

  • 嗨!我也遇到了同样的问题,但是使用 Chrome,您知道可能是什么问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-25
  • 2017-12-22
  • 2016-07-04
相关资源
最近更新 更多