ruby - 是否可以使用机器人打开浏览器,手动操作页面,然后继续使用机器人?

标签 ruby selenium webdriver nokogiri screen-scraping

我正在使用 Ruby、Selenium WebDriver 和 Nokogiri 从网页中检索数据。加载正确的 HTML 后,我打印某个类的内容。

例如,

require "selenium-webdriver"
require "nokogiri"
browser = Selenium::WebDriver.for :chrome
browser.get "https://jsfiddle.net"
doc = Nokogiri::HTML.parse(browser.page_source)
doc.css('.aiButton').map(&:text).join(',')

到目前为止,我发现最困难的部分是正确加载正确的 HTML。例如,我想要的内容可能被一些 javascript 隐藏了,或者可能在不同的页面上。

是否可以使用 Selenium 加载页面,然后手动操作页面以显示正确的 HTML,然后然后让机器人完成并打印它应该打印的内容? p>

最佳答案

您可以使用 Selenium 与网页交互 - 填写表单字段、单击按钮等。您甚至可以执行自己的 javascript 代码。

Selenium cheat sheet

编辑:

使用 pry 停止代码执行,以便您可以手动操作网页。

# Code for starting Selenium session and opening the web page
...

# Use pry to stop the code execution.
# Resume the program using command 'exit' in the pry context
require 'pry'; binding.pry

# Code to get results after you manually manipulate the web page
...

关于ruby - 是否可以使用机器人打开浏览器,手动操作页面,然后继续使用机器人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39422814/

相关文章:

ruby - 在 Ruby 中通过 using::operator 定义方法是什么意思?

authentication - 使用 Selenium 处理浏览器身份验证

c# - 如何在 selenium webdriver 中突出显示元素

selenium - Selenium 中的 "clickable"元素是否也意味着它是 "visible and present"?

Selenium WebDriver.get(url) 不打开 URL

ruby - 如何获取数字之间的特定点

Rubymine有什么方法可以清除内置控制台吗?

ruby - 如何满足没有指定 ruby​​forge_project 的警告?

java - 使用 Selenium WebDriver、Selenium Grid 和 testNG 运行并行测试

javascript - Protractor 等待条件不应在超时后失败