2013-06-30 25 views
0

我想能夠登錄,然後訪問我的個人資料頁面來刮取一些信息。登錄工作完美,但是當我訪問個人資料頁面時,它不能正確顯示,並要求再次登錄。就好像未設置cookie或未創建會話一樣。我怎樣才能做到這一點?水豚會話或cookie之間不能訪問

我還會提到,該網站嚴重依賴於框架和Javascript,它不適用於機械化。

require 'capybara-webkit' 
require 'capybara/dsl' 
require 'nokogiri' 

include Capybara::DSL 
Capybara.current_driver = :webkit_debug 
Capybara.app_host = "https://site.com" 
login = '/start.asp' 
target = '/profile' 

visit(login) 

fill_in('user', :with => 'user) 
fill_in('pass', :with => 'pass') 
my_link = find(:xpath, '//*[@id="loginform"]/div/div[2]') 
my_link.click 

visit(target) 

回答

0

我想嘗試這樣的事:

require 'capybara' 
session = Capybara::Session.new(:selenium) 
session.visit("https://site.com/start.asp") 
session.fill_in('user', :with => 'user') 
session.fill_in('pass', :with => 'pass') 
session.click_link 'Login' 
... 
session.visit("https://site.com/profile") 

capybara github repo - 手動使用會話

cheatsheat