【发布时间】:2015-02-07 14:30:29
【问题描述】:
我正在使用 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。
我通过Watir::Browser.new 运行 PhantomJS 并提供以下命令行参数:--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],
【问题讨论】:
-
是的,这看起来确实像是 PhantomJS 的某种问题。奇怪的是,您只有一个似乎有问题的规范文件,有点让您怀疑网页上或客户端 JS 代码中是否发生了不同的事情导致 Phantom JS 出现问题。
标签: rspec webdriver phantomjs watir-webdriver ghostdriver