因此,可能最重要的是我使用c9。它是云端的IDE,因此在尝试将Chrome或Firefox与Watir一起使用时给我带来了很多麻烦,因为我无法写入Chrome或Firefox浏览器的路径。我也尝试过我能找到的等待方法的各种变化,但没有一种能够奏效。
def save
require 'watir'
require 'phantomjs'
@browser = Watir::Browser.new :phantomjs
@browser.goto "https://kroger.softcoin.com/programs/kroger/digital_coupons/?origin=DigitalCoupons&banner=Smiths#contentBox"
@browser.div(id: "contentBox").wait_until(&:present?).text
@products = @browser.divs
end
错误
30秒后超时,等待#" contentBox",:tag_name =>" div"}>
的真实情况我想解决这个无法从Smiths网站获取数据的问题的方法是使用Chrome浏览器,但我收到错误"无法连接到chromedriver 127.0.0.1:9515" ;
答案 0 :(得分:3)
我有类似的问题 我通过安装带有selenium的docker容器来解决它
# docker-compose.yml file
version: '2'
services:
selenium:
image: selenium/standalone-chrome
ports:
- "4444:4444"
restart: always
volumes:
- "${PWD}/spec:${PWD}/spec" # I exposed `spec` dir to cover code with specs
- /dev/shm:/dev/shm
# test.rb file
@browser = Watir::Browser.new(
:remote,
url: 'http://localhost:4444/wd/hub'
)
使用命令运行容器:
docker run -it -d -P -p 4444:4444 -v `pwd`/spec:`pwd`/spec selenium/standalone-chrome
再试一次
(您甚至可以在VPS或其他远程服务器上运行容器,然后连接到它)
答案 1 :(得分:2)
我遇到了类似的问题,安装webdrivers gem修复了我的问题
$gem install webdrivers