如何解决问题:python / selenium中的套接字错误[地址已在使用中]
|| 我有一个麻烦的问题socket.error错误:[Errno 10048]:地址已在使用中。在使用带有Python的Selenium进行自动测试期间,通常只允许每个套接字地址(协议/ IP地址/端口)使用一种。这个问题非常有趣,以至于它在一台机器(Linux)上运行正常,但是在另一台机器(WindowsXP)上却产生此错误。 我要补充一点,该问题是在重新安装系统并重新设置之后出现的-使用先前的配置,一切正常。 也许我忘记了什么?有人曾提出过这样的问题吗? 有谁知道如何处理这个问题? 当前配置/库: python 2.7,numpy,selenium.py解决方法
如果您多次打开/关闭套接字,则它可能处于TIME_WAIT状态。这可以解释为什么它在单独的平台上有不同的行为(不同的TIME_WAIT设置和TCP堆栈)。如果要控制套接字对象,则可以在绑定之前设置SO_REUSEADDR以解决该问题。
例如:
原来,此问题是Windows的限制
, 有几种可能性。如果您的测试都不能在某个端口上侦听(您不说什么端口),则说明您的Windows计算机正在您先前打开的端口上运行某些内容;重新安装过程中可能会出现此新服务。另一方面,如果对于某些测试来说这只是一个问题,或者是零星的,那么这可能是编程问题(忘记在早期测试中关闭套接字会干扰以后的测试) )或计时问题(较早的测试的套接字在尝试打开新的套接字之前并没有完全关闭)。显然,解决每个问题都有不同的方法,但是我认为如果没有更多细节,我们可以提供更多帮助。
, Windows上可能已经有一个软件已经在使用端口4444,可以将Selenium设置为另一个端口并重试吗?
sock = socket.socket()
sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,server.getsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR) | 1)
您可以在命令提示符下运行netstat -b
,以提供带有状态和拥有过程的打开套接字列表。
, 我在下面的帖子中找到了答案:
Python urllib2。 URLError:版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。