在访问网页后尝试查找任何元素时,Watir超时

时间:2017-09-16 22:54:05

标签: javascript ruby-on-rails watir c9.io

因此,可能最重要的是我使用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" ;

2 个答案:

答案 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