我使用的是Ruby 2.1.0,watir-webdriver,rspec,taza和PhantomJS 1.9.8。操作系统是Linux tester 3.2.0-4-686-pae #1 SMP Debian 3.2.65-1+deb7u1 i686 GNU/Linux
。PhantomJS间歇性拒绝连接
我通过Watir::Browser.new
运行PhantomJS并提供以下命令行参数:--ignore-ssl-errors=true --ssl-protocol=any --debug=true --cookies-file=/tmp/cookies.txt
。
有一个单一的spec文件在开始的时候会间歇性地失败(我会说,很可能会失败):Connection refused - connect(2) for "127.0.0.1" port 8910
。与此同时,netstat -tulpan
显示了这一点:
...
tcp 0 0 127.0.0.1:43695 127.0.0.1:8910 TIME_WAIT -
tcp 0 0 127.0.0.1:43723 127.0.0.1:8910 TIME_WAIT -
tcp 0 0 127.0.0.1:43743 127.0.0.1:8910 TIME_WAIT -
tcp 0 0 127.0.0.1:43677 127.0.0.1:8910 TIME_WAIT -
tcp 0 0 127.0.0.1:43740 127.0.0.1:8910 TIME_WAIT -
...
大约90个端口总数。他们在rspec
已经退出后仍然开放。我对这种失败的间歇性感到困惑。有其他人遇到同样的问题吗?任何意见,建议,链接等,非常感谢。谢谢。
UPD:我接过定睛一看,发现在某个时间点PhantomJS开始下降连接,从收入的webdriver: - > [SYN],< - [RST,ACK]。该进程仍然在内存中,但由于PhantomJS不保存任何错误日志,我完全不知道是什么原因。
是的这是真的看起来像PhantomJS的某种问题。奇怪的是,你只有一个spec文件,似乎有问题,有点让你想知道是否有什么不同的事情发生在网页上,或导致Phantom JS的客户端JS代码。 – 2015-02-14 10:26:01