我正在尝试在dockerizedhtml" target="_blank">selenium独立firefox浏览器上运行Ruby on
Rails功能测试。似乎我在联网方面遇到问题,因为selenium实例无法连接到Capybara启动的URL。
这是我的示例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接收到来自水豚的命令。问题是它无法连接到所提供的URL,我可以用屏幕快照确认。
Firefox无法在my-app:56555与服务器建立连接
为了更好地理解问题,我启动了Rails应用程序,并尝试从selenium容器中访问它。我注意到,如果我使用ip绑定启动rails应用程序,则只能从selenium容器访问该应用程序。
rails s Puma -b 0.0.0.0
这看起来像是网络问题,但是我找不到解决方案。
如何使用Capybara使selenium容器访问运行Rspec功能测试的rails应用程序?
capybara (2.6.0)
selenium-webdriver (2.48.1)
谢谢你的帮助。
服务器线程轨在绑定Capybara.server_host接口(默认为127.0.0.1)的情况下运行测试应用程序-
您可以将其更改为docker容器可以与您的计算机进行通讯的任何IP接口-在您可能的情况下
Capybara.server_host = '0.0.0.0' # bind to all interfaces
问题内容: 关于使用SQL Server 2008 R2,我有一个问题。 我最近在我的计算机上遇到问题,因此必须重新启动Windows,并且必须将一个用户的权限授予另一用户(使用属性中的安全功能)。最初授予权限时,它通过“访问被拒绝”消息。 经过大量研究,它停止产生此错误(我也需要授予权限的用户不可用),然后导致另一个问题发生,但这一次是在SQL Server中。它产生此消息; 数据库[dbNam
本地:- 我正在尝试在chrome浏览器上运行硒测试。 当前,另一个chrome浏览器正在运行,然后通过打开新配置文件在chrome browser上运行测试,并得到以下错误:- Chrome驱动配置:- 如果我关闭现有的正在运行的chrome浏览器,然后在chrome浏览器上运行硒测试,它可以工作。 詹金斯:- 当我试图在詹金斯上跑步时。我收到以下错误:- 这里的问题是什么,有人能帮我解决这个吗
介绍 Laravel Dusk 提供了富有表现力、简单易用的浏览器自动化及测试 API 。默认情况下,Dusk 不需要在你的机器上安装 JDK 或者 Selenium 。而是需要使用单独的 Chrome 驱动 进行安装。当然,你也可以自由使用其他的兼容 Selenium 的驱动程序。 安装 你应该先向你的 Composer 依赖添加 laravel/dusk : composer require
我在我的Ubuntu服务器上安装了jenkins。它说它正在运行,但我无法从本地计算机连接浏览器,也无法访问服务器的桌面以检查是否可以从本地主机连接。 补充信息: 返回: ● 詹金斯。服务-LSB:启动时启动Jenkins加载:加载(/etc/init.d/Jenkins;错误;供应商预设:启用)激活:自2018-09-13 14:46:08-03起激活(退出);1小时11分钟前文档:man:sy
我编写了一个非常简单的spring boot应用程序,并将其打包在Docker中。 docker文件的内容是: 我把它推到了docker hub。 我在aws上创建了一个新的EC2实例。然后我连接到它并键入以下命令: 最后一个命令在屏幕上给出了许多消息,表示spring boot应用程序正在运行。 看起来很棒。但是,当我打开浏览器并键入:http://ec2-54-86-87-68.compute
问题内容: 有没有一种方法可以使用selenium捕获c#中的浏览器日志。 我正在寻找捕获出现在特定页面上的所有JS错误。在Chrome或Firefox上更可取。 我以前在Python中完成过此操作,但是可以在C#中完成吗? 问题答案: 要使用Selenium / Chrome / C#设置和检索日志条目,请执行以下操作: 对于Firefox: