我可以使用打开的浏览器初始化Watir :: Browser对象吗?

时间:2017-02-13 20:20:44

标签: ruby web web-scraping watir

我正在与Watir一起编写一个小脚本来学习一些关于使用脚本语言进行网页抓取的内容,但是我使用的网站需要使用2步验证进行登录。

我自动登录过程但是目前我手动插入验证码然后继续我的脚本以获取信息并完成所需的任务。

在我自动执行2步验证之前,如果不是打开新的浏览器并完成登录过程,我可以在已经登录的浏览器中指向Watir :: Browser对象并从那里开始。

作为参考,这是我用来创建浏览器对象的代码:

require 'watir'

# Open ghost browser
browser = Watir::Browser.new(:chrome)

# Navigate to the scrape site
browser.goto("https://secure.site.that.requires.authentication.com")

# Set login information
browser.text_field(name: 'username').set "username"
browser.text_field(name: 'password').set "password"

# Login
browser.button(type: 'submit').click

# Manually enter verification code and continue script afterwards

1 个答案:

答案 0 :(得分:1)

不,Watir / Selenium无法与当前编码会话中未由驱动程序启动的浏览器进行交互。您可以通过复制/粘贴到同一个irb会话中执行所需操作,或者插入sleep命令,让您有时间在两个不同的自动部件之间进行手动操作。