Selenium Rspec test with chromedriver can't run on gitlab/gitlab-ci

me3540 · 2017年03月15日 · 最后由 me3540 回复于 2017年03月30日 · 2500 次阅读

As title, I try to run Ruby Rspec automation test with chromedriver on the gitlab-ci. But I failed. I've tried many solutions which I googled and got from here, nothing can work for me. Please help me, thanks.

My setting works fine in my local environment and also works fine with the headless mode on gitlab-ci. So I think it's very weird it can't work with chromedriver on the gitlab-ci.
Please check my post on stackoverflow for more details, thanks.
http://stackoverflow.com/questions/42802217/rspec-test-with-chromedriver-cant-run-on-gitlab-gitlab-ci

共收到 24 条回复 时间 点赞

could u paste more information here, like error log, config or something else?

I guess you run ur test on chromedriver against linux without x. This cannot be exectued because chromedriver need start chrome. you may need xvfb.

各位前輩早 感謝上次各位的解惑 這段時間有將各位上次給的意見一一試試看
之前那個 NoMethodError: undefined method 'visit' for nil:NilClass 已解決
主要原因是沒有在 gitlab 上面裝好 firefox/chrome 或者說那時沒有 link 到正確的路徑
目前的問題則是一直出現 Net::ReadTimeout: Net::ReadTimeout
連基本的 visit google.com 都會跑出這個錯

以下附上主要檔案跟 error log(gitlab-ci pipeline 所產生的)
https://mega.nz/#F! bsJQ0aSR! 5sYZ-IUoFjTZSY3jsmM0fg

懇請各位前輩賜教 謝謝
這兩週也爬了不少的 google 文 幾乎能查的關鍵字都查過了 但還是找不出解法...

恒温 回复

已回覆 可以的話請您幫忙看一下 謝謝

me3540 回复

你的 gitlab ci 环境里是不是没法访问 google ?

恒温 回复

可以的

看不出来问题。是每次都出现这样的问题,还是偶然的?

另外,Capybara 的超时时间试试看加长一点?

恒温 回复

每次都是這個問題
我甚至在同一台機器上面架了一個 python 的 simpleHTTPserver,還是一樣連不到,一樣 timeout

me3540 回复

你看到浏览器启动了吗?

me3540 #10 · 2017年03月29日 Author
恒温 回复

該怎麼做"看"這個動作呢?
畢竟這台機器事架在 gitlab 上面的遠端 server
而且是沒有 GUI 的 Linux 系統...

me3540 回复

没有 gui,那你没看我前面的回帖啊?

I guess you run ur test on chromedriver against linux without x. This cannot be exectued because chromedriver need start chrome. you may need xvfb.

me3540 #12 · 2017年03月29日 Author
恒温 回复

我有看到喔
而且嘗試過了
我的 xvfb 是有成功 start 的
如果你看我前面附上的 gitlab log 就知道了
我意思是 你指的是任何其他方式去確認有沒有成功開啟嗎?

me3540 回复

你的代码里使用的是 Firefox,我想知道的是 Firefox 有没有启动?

me3540 #14 · 2017年03月29日 Author
恒温 回复

可以請您明確教一下如何判斷 “ Firefox 有沒有啟動” 嗎?謝謝

me3540 回复

有没 firefox 启动起来啊

me3540 #16 · 2017年03月29日 Author
恒温 回复

我意思是 看到哪些 log 才算有啟動起來呢?或者我要下哪些 commands?

me3540 回复

log 里看不出。理论上你 visit 的之前,firefox 已经唤起了。然后 visit / 的时候就会使用浏览器去请求 capybara host

me3540 #18 · 2017年03月29日 Author
恒温 回复

所以其實我沒有任何方法可以去確認 firefox 有沒有成功被開啟???

me3540 回复

xvfb 会有界面的呀。。。 或者你 ssh -X 到你的那台机器上去,打开 gui,看看?

me3540 #20 · 2017年03月30日 Author
恒温 回复

這台 gitlab 是 devops 架設給 qa 用的 如果要 ssh 上去 應該就是要跟他們部門要權限了 對吧?

me3540 回复

看看能不能找到那台设备,如果是虚拟机或者 docker 感觉就没啥好办法。或者你不要用 firefox 或者 chrome 试试看 headless 的 driver

me3540 #22 · 2017年03月30日 Author
恒温 回复

chrome 也試過了 一模一樣的 error 也是 timeout

me3540 回复

用 htmldriver

me3540 #24 · 2017年03月30日 Author
恒温 回复

喔喔 看來又將學到一個沒聽過的新技術了嗎?
htmldriver 是類似 webdriver 的東西?
也可以用 selenium 去執行它嗎?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册