一些使我感到棘手的注意事项是,我正在使用c9.io(在云中开发),因此我使用gem webdrivers可以通过Watir运行Chrome,而不是为安装在设备上的Chrome创建可执行路径。
我的代码一直有效,直到我今天登录并出现错误
会话未创建异常:Chrome版本必须> = 64.0.3282.0(驱动程序信息:chromedriver = 2.37.543610(afd36256570660b5a2f0e4dbd1b040f3dcfe9cb5),平台= Linux 4.9.80-c9 x86_64)
gemfile的相关部分(其他所有库存)
gem 'webdrivers'
gem 'watir'
Run Code Online (Sandbox Code Playgroud)
我正在尝试编译的代码
def mastersave
require 'watir'
@browser = Watir::Browser.new :chrome, headless: true
end
Run Code Online (Sandbox Code Playgroud)
我并没有坚持使用Chrome的想法,但这正是对我有用的。宝石“ webdrivers”还允许我使用Firefox,但是我收到了“权限被拒绝”的错误。
selenium ruby-on-rails selenium-chromedriver selenium-webdriver 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
Run Code Online (Sandbox Code Playgroud)
错误
30秒后超时,等待#"contentBox"的真实条件,:tag_name =>"div"}>
我想解决这个无法从史密斯网站上抓取数据的问题的方法是使用Chrome浏览器,但我收到错误"无法连接到chromedriver 127.0.0.1:9515"
我有一些跨越多行的文本,我想按每个新行组织它.示例文本是:
Save $5.00 on Candy with Your Pickup Purchase
Other
when you purchase $15.00 worth of candy. Offer valid only when
Exp 02/09/2019
Run Code Online (Sandbox Code Playgroud)
我希望将每个新行放在不同的数组中,但不确定如何区分新行.