我们正在使用 watir webdriver 来测试我们的应用程序。目前我有 20 个 watir 测试在 linux 服务器上每 1 或 3 分钟开始一次。由于 firefox 的工作方式,我们经常会遇到测试运行失败的情况,因为它在启动期间锁定了端口 7055。如果端口没有及时释放,同时开始的测试最终会超时。
经过大量试验,我似乎已经能够通过修改这个文件来解决这个问题:
gems/selenium-webdriver-2.21.1/lib/selenium/webdriver/firefox/launcher.rb
我在顶部附近添加了这段代码以分配一个随机锁定端口,而不仅仅是默认的 7055。这似乎很有帮助,现在只看到罕见的失败。
询问是否有更好的方法来执行此操作,或者这是否会带来任何问题?
### added to attempt to reduce unable to open firefox issues
if @port == 7055 then
@port += rand(2000)
puts "PORT: #{@port}"
end
还有其他人搞砸了吗?我对 ruby 还很陌生,所以我猜想有更好的方法来编写它。
感谢您提供的任何意见。
最佳答案
与其修改 firefox launcher.rb,我认为你最好在每个脚本中加入一些逻辑。这样的事情可能会有所帮助!
请查看以下链接: Ruby - check if a port is open
关于ruby - selenium-webdriver 的 launcher.rb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11122405/