ruby - selenium-webdriver 的 launcher.rb

标签 ruby firefox selenium webdriver watir

我们正在使用 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/

相关文章:

python - 如何使用 BeautifulSoup 和 Python 仅从相似元素中提取某些文本

selenium - 在 Selenium 中, sendKeys() 和 setValue() 方法究竟有何不同?

ruby - 在一条语句中为多个对象赋一个值

ruby-on-rails - Rails 3. before_destroy 验证以防止删除父记录

css - Firefox 100% 高度和自动滚动 div 问题

CSS 表格显示差异 - Chrome 与 Firefox

ruby-on-rails - 无法在 Rails 集成测试中设置 header

html - 从 capybara 的数据值属性中获取值

html - 网站在不同的浏览器中呈现不同

java - 无法从 google url 下拉 chromedriver 驱动程序