自动化与网站的互动 - Rails

时间:2012-11-20 19:46:40

标签: javascript ruby-on-rails mechanize

我正在尝试自动登录并在网站上发布一些内容,但我不能使用Mechanize,因为涉及许多javascript操作。我想知道是否有任何其他宝石/工具可以使用该支持javascript。

我也尝试过Watir,但它涉及到浏览器,我想要一个没有浏览器的选项。

谢谢,

2 个答案:

答案 0 :(得分:4)

有几种选择:

在这里阅读更多关于如何使用它们的信息,例如capybara: https://github.com/jnicklas/capybara#drivers

答案 1 :(得分:1)

您可以尝试使用watir headless来隐藏浏览器。您的代码看起来像这样:

require 'watir-webdriver'
require 'headless'

headless = Headless.new
headless.start

profile = Selenium::WebDriver::Firefox::Profile.new
driver = Selenium::WebDriver.for :firefox, profile: profile
browser = Watir::Browser.new driver

browser.goto "http://example.com"
browser.wait_until do
  browser.text_field(name: 'login').set("email@example.com")
  browser.text_field(name: 'password').set("secret")
  browser.button(name: "Sign in").click
end

# etc...

browser.close
headless.destroy