ruby-on-rails – Dockerized selenium浏览器无法访问Capybara测
发布时间:2020-12-17 03:18:33 所属栏目:百科 来源:网络整理
导读:我试图在dockerized selenium独立firefox浏览器上运行 Ruby on Rails功能测试. 似乎我遇到了网络问题,因为selenium实例无法连接 到Capybara开始的网址. 这是我的示例docker-compose.yml文件: ff: image: selenium/standalone-firefox:2.48.2 container_name
我试图在dockerized selenium独立firefox浏览器上运行
Ruby on Rails功能测试.
似乎我遇到了网络问题,因为selenium实例无法连接 到Capybara开始的网址. 这是我的示例docker-compose.yml文件: ff: image: selenium/standalone-firefox:2.48.2 container_name: firefox-browser web: build: . container_name: my-app volumes: - ".:/home/ubuntu/my-app" command: /bin/bash -l scripts/docker-start-tests.sh ports: - "3000:3000" 我启动了docker-compose并启用了网络: docker-compose --x-networking up 测试脚本运行这样的rspec命令 rspec ./spec/features/login_spec.rb:43 对于docker测试,我为Capybara启用了远程驱动程序: Capybara.register_driver :docker_firefox do |app| Capybara::Selenium::Driver.new(app,{ browser: :remote,url: "#{ENV['FF_URL']}/wd/hub",desired_capabilities: Selenium::WebDriver::Remote::Capabilities.firefox }) end 最后我将测试称为: unless ENV['FF_URL'].nil? Capybara.current_driver = :docker_firefox Capybara.javascript_driver = :docker_firefox Capybara.app_host = "http://my-app:56555" Capybara.server_port = "56555" # Capybara.server_host = "my-app" end visit root_path save_and_open_screenshot click_link "Sign in" ... 我可以拖尾浏览器容器日志,我看到selenium从Capybara接收命令.
为了更好地理解这个问题,我启动了rails应用程序,并尝试从selenium访问它 rails s Puma -b 0.0.0.0 这看起来像一个网络问题,但我无法找到解决方案. 如何让selenium容器访问使用Capybara运行Rspec功能测试的rails应用程序? capybara (2.6.0) selenium-webdriver (2.48.1) 谢谢你的帮助. 解决方法
服务器线程rails运行测试应用程序绑定到Capybara.server_host接口(默认情况下为127.0.0.1) – 您可以将其更改为docker容器可以与您的机器通话的任何ip接口 – 在您的情况下可能
Capybara.server_host = '0.0.0.0' # bind to all interfaces (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |