簡體   English   中英

Watir Chrome無頭Docker

[英]Watir Chrome Headless Docker

我試圖通過在Docker上與我的測試套件一起無頭運行來簡化Selenium測試。 我正在運行Debian Jessie映像,其中從PPA安裝了google-chrome-stable,並安裝了chromedriver 2.33。 我還附加了/ dev / shm以最大化容器中的內存。 我已驗證chromedriver在容器內部運行良好。 但是,當我運行一個簡單的測試時,會出現超時:

browser = Watir::Browser.new :chrome, headless: true
browser.goto 'google.com'
browser.text_field(title: 'Search').set 'Hello World!'
browser.button(type: 'submit').click
puts browser.title
browser.quit

/usr/local/lib/ruby/2.4.0/net/protocol.rb:176:in `rbuf_fill': Net::ReadTimeout (Net::ReadTimeout)
    from /usr/local/lib/ruby/2.4.0/net/protocol.rb:154:in `readuntil'
    from /usr/local/lib/ruby/2.4.0/net/protocol.rb:164:in `readline'
    from /usr/local/lib/ruby/2.4.0/net/http/response.rb:40:in 
......

要提及的一件事是chromedriver安裝在/ chromedriver / chromedriver上,然后添加到$ PATH中。 Watir / Selenium是否需要知道chromedriver的完整路徑? chromedriver或chrome是否需要在后台運行?

那是因為小shm(共享內存)。 這個github 鏈接將解決您的麻煩。 如果您好奇什么是shm,請參閱不錯的指南。

使用此命令可以完成快速測試。

docker exec containerID umount /dev/shm
docker exec containerID mount -t tmpfs -o rw,nosuid,nodev,noexec,relatime,size=512M tmpfs /dev/shm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM