【问题标题】:Can I initialize a Watir::Browser object with an open browser?我可以用打开的浏览器初始化 Watir::Browser 对象吗?
【发布时间】:2017-02-13 20:20:44
【问题描述】:

我正在使用 Watir 编写一个小脚本,以了解一些关于使用脚本语言进行网页抓取的知识,但是我使用的网站需要通过两步验证登录。

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

在我自动完成两步验证之前,如果不打开一个新的浏览器并完成登录过程,我可以将一个 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

【问题讨论】:

    标签: ruby web web-scraping watir


    【解决方案1】:

    不,Watir/Selenium 无法与不是由当前编码会话中的驱动程序启动的浏览器进行交互。你可以通过复制/粘贴到同一个 irb 会话中来做你想做的事,或者插入一个sleep 命令,让你有时间在两个不同的自动化部分之间进行手动工作。

    【讨论】:

      猜你喜欢
      • 2012-01-27
      • 1970-01-01
      • 2019-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-07
      • 1970-01-01
      相关资源
      最近更新 更多