问题描述
我正在尝试移至Bitbucket的CICD,并对我们的Rails应用进行docker化。我想利用browserlessio,但遇到一个问题,除非对资源进行预编译,否则我将无法访问它们,我不希望对每个推送的分支都这样做。
我的docker-compose文件将webdriver URL设置为"http://webdriver:3000/webdriver"
,这是我注册驱动程序的代码。
# Register the driver
driver_name = :remote_chrome
remote_host = 'http://webdriver:3000/webdriver'
Capybara.register_driver driver_name do |app|
Capybara::Selenium::Driver.new app,browser: :remote,url: remote_host,desired_capabilities: Selenium::WebDriver::Remote::Capabilities.chrome('goog:chromeOptions' =>
{ 'args' => ['--headless','--no-sandBox'] })
end
# Set JS driver
Capybara.javascript_driver = :remote_chrome
# Set proper ports and host
Capybara.server_host = '0.0.0.0'
Capybara.server_port = '3000'
Capybara.always_include_port = true
当资产进行预编译时,此设置可以正常工作,但是一旦将其删除并通过docker运行规范,就会出现此错误
Selenium::WebDriver::Error::WebDriverError:
unexpected response,code=404,content-type=""
Couldn't access session,did it timeout?
我可以肯定这是由于找不到资产。
我认为此链接是我的省钱之选,但似乎无济于事: https://www.neotericdesign.com/articles/2018/04/running-your-rails-test-suite-with-dockerized-selenium-on-gitlab-ci/
任何帮助将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)