我正在使用 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
.
我通过运行 PhantomJSWatir::Browser.new
并提供以下命令行参数--ignore-ssl-errors=true --ssl-protocol=any --debug=true --cookies-file=/tmp/cookies.txt
:
一开始有一个规范文件间歇性地失败(我会说,可能是失败而不是通过):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 不保留任何错误日志,我完全不知道是什么原因。