ruby selenium-webdriver 使用记录

原文地址

WHAT

记录一下ruby下,selenium-webdriver的使用方法;

WHY

最近在用selenium-webdriver抓取数据,但是好像没有找到什么相关的文档,许多东西只能一点点的找,用过后又总是忘记,就写下来,以备查阅;

HOW

安装gem包

	gem install selenium-webdriver

引入gem包

require 'selenium-webdriver'

正常使用(chrome)

# 会打开一个谷歌浏览器
dr = Selenium::WebDriver.for :chrome

无头浏览器(chrome)

# 会在后台打开一个浏览器(headless)
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--headless')
options.add_argument('--disable-gpu')
dr = Selenium::WebDriver.for :chrome, options: options

切换标签页

dr.window_handles #返回已有的标签页id
dr.window_handle  #返回当前标签页id
dr.switch_to.window dr.window_handles[1] #切换到第一个标签页

设置超时时间

dr.manage.timeouts.page_load = 30
begin
  dr.get 'https://www.example.com'
rescue
  retry if dr.find_elements(:css, 'div.content[id="1"]').length < 1
end

获取网页源码

page = dr.page_source

获取属性

class = dr.find_elements(:css, 'div#div-id').attribute('class')

点击事件

dr.find_elements(:css, 'div#content[id="1"]').click

END

未完待续……

你可能感兴趣的:(crawler,ruby)