2017-11-19 23 views
0

나는 Watct와 함께 Ruby를 사용하여 irctc 웹 페이지를 엽니 다. 자동으로 사용자 이름과 암호를 입력 할 수 있습니다. 보안 문자에 관해서는 보안 문자를 입력하는 구문을 사용할 수 없습니다. 왜냐하면 나는 그것이 무엇이 될지 미리 알지 못하기 때문입니다. 난 그냥 손으로 보안 문자를 입력 할 수있는 간단한 방법을 원한다. 내 스크립트가 기다려야하는 보안 문자를 입력하는 동안 스크립트에서 다음 구문을 실행해야합니다.watir에서 웹 페이지를 반자동으로 만드는 방법은 무엇입니까?

#require 'watir-webdriver' 
require 'watir' 

caps = Selenium::WebDriver::Remote::Capabilities.firefox 
caps['acceptInsecureCerts'] = true 
driver = Selenium::WebDriver.for(:firefox, desired_capabilities: caps) 
browser = Watir::Browser.new(driver) 

# text to show on console 
puts "Beginning of the automation of IRCTC webpage" 

browser.goto("https://www.irctc.co.in/eticketing/loginHome.jsf") 

#browser.button(:id, "returnButton").click 

#set a variable 
search_text = "my_username" 

#puts " Step 2: enter "+ search_text +" in the search text field." 
browser.text_field(:name, "j_username").set search_text # "j_username" is the name of the search field 

#browser.span(:class, "RveJvd snByac").click # "RveJvd snByac" is the class-name of the Search button 

search_text = "my_password" 
browser.text_field(:name, "j_password").set search_text 

#Here I need to enter CAPTCHA before proceeding to next syntax. 

browser.button(:type, "submit").click 
+0

나는 자동화 된 IRCTC 웹 사이트를 가지고 있으며 같은 문제에 봉착했습니다. 로그인 버튼에 디버그 포인터를 놓고 디버그 포인터에 도달하면 수동으로 입력 한 다음 F9 키를 눌러 더 진행합니다. 다음 번 디버그 포인터에서 멈 춥니 다. – RAJ

+0

이미지이므로 CAPTCHA를 읽을 수 없습니다. – RAJ

+0

스크립트는 어떻게 실행되고 있습니까? – Andrey

답변

0

수동으로 데이터를 입력하는 두 가지 방법이 있습니다 : 수동으로 손으로 브라우저에 보안 문자를 입력 할 수 있도록 1. 추가 수면 명령 :

sleep 30 
    1. 보안 문자 = gets.chomp

      :

      추가는 (필자는 보안 문자 필드의 실제 이름을 모르는) 콘솔을 통해 보안 문자를 입력하라는 메시지를 표시합니다 명령을 얻는다

      browser.text_field (이름, "보안 문자") 보안 문자의 전체 포인트는 사이트에 대한 자동화 된 액세스를 방지하는 것입니다

  • +0

    감사합니다. 나는 수면 명령이 루비 있다는 것을 몰랐다. 나는 Ruby를 처음 사용합니다. – user142873

    0

    설정 보안 문자.. 일반적으로 보안 문자를 사용하는 사이트에는 봇이나 자동화를 사용하여 사이트 액세스를 금지하는 서비스 약관이 있습니다.

    웹 사이트를 긁어 모으는 것보다 훨씬 나은 방법은 제공되는 API를 사용하는 것입니다.

    IRCTC는 API를 가지고, 당신은 여기에 대한 정보를 얻을 수 있습니다 : API를 사용하여 http://api.erail.in/

    훨씬 더 안정적이고 훨씬 더 빨리, 덜 취성 긁어 및 웹 자동화에 의해 당신이 원하는 일을하는 것보다입니다 . 또한 REST-CLIENT 보석을보고 요청 및 응답 처리를 용이하게하기를 권장합니다.