Skip to content

Instantly share code, notes, and snippets.

@takano32
Created December 13, 2011 03:29
Show Gist options
  • Save takano32/1470412 to your computer and use it in GitHub Desktop.
Save takano32/1470412 to your computer and use it in GitHub Desktop.
#! /usr/bin/env ruby
# vim: set et sts=2 sw=2 ts=2 fdm=marker ft=ruby :
# author: takano32 <tak@no32 dot tk>
#
require 'rubygems'
require 'pit'
# ブラウザの起動とかを見えないようにできるけど、Xvfbとか必要
# Darwinじゃ使えないかもしれない。
# require 'headless'
require 'capybara'
# capybaraで書いたロジックを実行するWebDriverとしてMechanizeも選べる。
#require 'capybara/mechanize'
require 'capybara/dsl'
require 'uri'
# visit とか with とか fill_in みたいなのが簡単に呼べる。
# きちんと名前空間とか指定する派の人はインクルード不要
include Capybara::DSL
# まあ、コミットしたりするときにパスワードコミットしちゃうとアレ。
config =
Pit.get("hatena",
:require => {
'login-name' => 'your hatena login name',
'password' => 'your hatena password',
})
# 今回は Selenium WebDriver で動かします。
# みためにもモリモリ動いて面白いですし。
Capybara.run_server = false
Capybara.default_driver = :selenium
# ログインのページにジャンプします。
visit('https://www.hatena.ne.jp/login')
# ログインフォームについての処理をブロックで書ける。
within('form') do
# はてなIDとパスワードを自動入力します。
fill_in 'login-name', :with => config['login-name']
fill_in 'password', :with => config['password']
# ログインボタンを探してクリック
find('input.submit').click
end
# ログイン完了!を確認するために15秒くらい待ってみますか。
sleep 15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment