2012-09-12 4 views
0

나는 WATIR + Ruby를 처음 사용합니다. 나는 로그인 작품 개까지이watir 양식 제출 후

browser.link(:name, 'login-facebook id=').click 
browser.text_field(:id,'email').set(usr) 
browser.text_field(:id,'pass').set(pwd) 
puts 'form submit' 
browser.form(:id,'login_form').submit 
puts 'hello world' 

같은 형태로 로그인 한 후 테스트하기 위해 계속 노력하고 있어요. 양식 제출을 확인하고 양식을 제출합니다. 그러나 더 이상 갈 수는 없습니다. 'hello world'가 보이지 않는 경우

+1

중 도메인에 대해, 당신은 자동화에 대한 자신의 정책을 확인하기 위해 robots.txt 파일을 검토 할 수

은 IRB 그것은 어느 쪽이든 잘 작동합니다. https://www.facebook.com/robots.txt –

+0

사용자가 양식을 제출할 수있는 통제 권한이 있습니까? 아마도 제출 버튼은 양식을 제출하는 것 이상의 기능을 수행합니다 (예 : 다른 기능을 먼저 호출). –

답변

0

붙여 넣은 코드 블록과 달리 모든 행에 새로운 행을 사용한다고 가정하면, 내 생각에 처음으로 콘솔은 테스트가 끝날 때까지 텍스트 출력을 표시하지 않습니다. 버퍼 동기화를 켜십시오. 스크립트 완성을 기다리는 것이 가능합니까?

스크립트의 맨 위에이 줄을 추가하고 문제가 해결되는지 확인하십시오.

$stdout.sync = true 
browser.link(:name, 'login-facebook id=').click 
browser.text_field(:id,'email').set(usr) 
browser.text_field(:id,'pass').set(pwd) 
puts 'form submit' 
browser.form(:id,'login_form').submit 
puts 'hello world' 
+1

수락하면 ToS에 의해서만 구속됩니다. 페이스 북 로그인 자동화 imho는 완벽하게 합리적입니다. – pguardiario

+0

이것은 다중 인증을 테스트하기위한 것으로 페이지로 돌아와 테스트합니다. $ stdout.sync = true는 마술을하지 않았습니다. 고맙습니다 – tv4free

+0

"양식 제출"이 올바르게 표시되면 제출 작업 중에 스크립트가 중단되어 계속 진행되지 않는 한 "hello world"도 표시되지 않는 이유는 없습니다. –

4

내가 여기에 문제를 일으키는 무슨 생각이, 바로 5 선 아래

sleep 1 until b.a(:class, "jewelButton").exists? 

같은 것을 넣어 시도로드하는 데 시간이 걸리는 HTTP 요청입니다.

도 아니고 b.form(:id,'login_form').submit 대신 b.button(:text, "Log In").click을 사용해야하는 이유는 무엇입니까?

irb(main):001:0>require "watir-webdriver" 
=> true 
irb(main):002:0>b = Watir::Browser.new :chrome 
Started ChromeDriver 
port=55320 
version=22.0.1203.0b 
log=C:\Users\your_username\chromedriver.log 
=> #<Watir::Browser:0x..fc4b0180c url="chrome://newtab/" title="New Tab"> 
irb(main):015:0> b.goto "facebook.com" 
=> "http://www.facebook.com/" 
irb(main):003:0>b.text_field(:id,'email').set(usr) 
=> {} 
irb(main):004:0>b.text_field(:id,'pass').set(pwd) 
=> {} 
irb(main):005:0>puts 'form submit' 
form submit 
=> nil 
irb(main):006:0>b.button(:text,"Log In").click 
=> nil 
irb(main):007:0>puts "blah blah" 
blah blah 
=> nil 
irb(main):008:0>b.a(:class, "jewelButton").click 
=> [] 
irb(main):010:0>b.a(:class, "jewelButton").click 
=> [] 
관련 문제