웹 테스트 도구 Watir

Watir 의 유명한 Rub Web 자동화 테스트 라 이브 러 리 입 니 다. 최근 연구 중 입 니 다. 여기 서 구 덩이 를 파 서 잊 어 버 리 세 요.
Watir 홈 페이지http://wtr.rubyforge.org/
설치 방법
Windows:
  gem update --system
  gem install watir
Linux:
  sudo gem update --system
  sudo gem install watir
Watir 문법 (루비 에서 웹 애플 리 케 이 션 테스트)

#   Watir  ,         
require 'watir'

#     IE    
ie = Watir::IE.new 
#                
ie = Watir::IE.start('http://www.text.com/') 
# Watir  start                    。 
# IE     
ie.speed = :fast 
ie.speed = :slow 

#      
ie.goto('http://www.text.com/') 
#  : ie.goto     javascript    : ie.goto("javascript: ie.document.write("Hello World");") 

#           
ie.url 

#       
ie.link(:text , "Pickaxe").click 
ie.link(:href, /http:\/\/pragmaticprogrammer\.com/).click 
ie.link(:name => 'foo', :index => 1).click 

#     uri 
ie.link(:text , "Pickaxe").href 
ie.link(:index, 1).href 
ie.link(:text => "reply", :index => 2).href 

#        
ie.link(:href , /http:\/\/pragmaticprogrammer\.com/).text 

=begin
   HTML   : 
<a href='http://pragmaticprogrammer.com/titles/ruby/'>Pickaxe</a> 
=end

# img   
ie.image(:name, 'image').src 
ie.image(:index, 2).src 

=begin
   HTML   : 
<img name = img src='http://pragmaticprogrammer.com/titles/ruby/top.gif'> 
<img name = img src='http://pragmaticprogrammer.com/titles/ruby/head.gif'> 
=end

#       
ie.checkbox(:name, "checkme").set 
ie.checkbox(:name, "checkme", "1").set #   name value        

#       
ie.checkbox(:name, "checkme").clear 
ie.checkbox(:name, "checkme", "1").clear #   name value        

=begin
   HTML   : 
<input type = "checkbox" name = "checkme" value = "1"> 
=end

#       
ie.radio(:name, "clickme").set 
ie.radio(:name=>'clickme', :index=>2).set 
ie.radio(:name, "clickme", "1").set #   name id        

#   name        
ie.radio(:name, "clickme").clear 
ie.radio(:name, "clickme", "1").clear #   name id        

=begin
   HTML   : 
<input type = "radio" name = "clickme" id = "1"> 
<input type = "radio" name = "clickme" id = "2"> 
=end

#       
ie.select_list(:name, "selectme").select('Python') #   text           
ie.select_list(:name, "selectme").select_value('2') #   value           

#   name           
ie.select_list(:name, "selectme").clearSelection

=begin
   HTML   : 
<select name = "selectme"> 
<option value = 1>Ruby 
<option value = 2>Java 
<option value = 3>Python 
<option value = 4>C 
</select> 
=end

#        
ie.text_field(:name, "typeinme").set("Watir World") 

#         
ie.text_field(:name, "typeinme").clear 

=begin
   HTML   : 
<input type = "text" name = "typeinme"> 
=end

#     name    button 
ie.button(:value, "Click Me").click 
ie.button(:name, "clickme").click 

=begin
   HTML   : 
<input type = "button" name = "clickme" value = "Click Me"> 
=end

#     name    Submit 
ie.button(:value, "Submit").click 
ie.button(:type, "Submit").click 
ie.button(:name, "Submit").click 

=begin
   HTML   : 
<form. action = "submit" name = "submitform" method="post"> 
<input type = "submit" value = "Submit"> 
</form>
=end 

#          
ie.button(:name, "doit").click 

=begin
   HTML   : 
<form. action = "submit" name = "doitform" method="post"> 
<input type="image" src = "images/doit.gif" name = "doit"> 
</form> 
=end

#         
ie.form(:name, "loginform").submit #   name,action  method        
ie.form(:action, "login").submit 

=begin
   HTML   : 
<form. action = "login" name = "loginform" method="get"> 
<input name="username" type="text"> 
</form>
=end 

#    
ie.show_frames #                  
# Watir             
ie.frame("menu") 
#      menu         ,   
ie.frame("menu").link(:text, "Click Menu Item").click 

#      
ie.frame(:name, "frame1").form(:name, 'form1') 

#     
#   Web                ,    attach           。        URL  title   。 
ie2 = Watir::IE.attach(:url, 'http://www.text.com/') 
ie3 = Watir::IE.attach(:title, 'Test New Window') 
#            
ie4 = Watir::IE.attach(:title, /Test New/) 
#   :           ie  ,              

#   Table  : 
t = $ie.table(:id,"data") 
t = Table.new($ie,:id,"data") 
t = $ie.table[1] 

# tr,td   
tr = ie.row(:id,"title") 
tr = TableRow.new(ie,:id,"title") 

td = ie.cell(:id,"name") 
td = TableCell.new(ie,:id,"name") 

# Watir Table,TableBody,TableRow,TableCell    ,          "[](index)"             ,        ,"index"      ,    1  ,   0  。 
#     : 
#  table    ,       : 
tr1 = t.[](1) 
td1 = tr1.[](1) 
#        :td1 = t.[](1).[](1) 
#   td       ,    td         , checkbox  : 
cb = td1.checkbox(:id,'navigate_id').click 

=begin
          ,   Element    ,  click,enabled?,exists?,fireEvent,flash,focus          。 
    td       ,             ,             。 
      Watir API Reference http://wtr.rubyforge.org/rdoc/ 
=end
#     : 
t = ie.table(:id,"CoolMenu2menutable") 
td_logout=t.[](1).[](16) 

#    Table,   TR,    TD 

#   Ruby    browser   
#   Ruby          "-b" 
# ex: 
test.rb -b 
#      .bat   
ex: test.bat 
ruby.exe test.rb -b 

#         
# <INPUT type=hidden value="  Email" name="field1">
values = ie.hidden(:name, 'field1').value 

#        
#   1: 
ie2 = Watir::IE.attach(:url,'http://www.google.cn/') #  URL   
#   2: 
ie3 = Watir::IE.attach(:title,'Google') #        
#   3: 
ie4 = Watir::IE.attach(:title, /google.cn/) #          

현재 Watir 는 JS 팝 업 창 을 처리 할 때 번 거 로 운 것 으로 알려 져 있 지만 자세 한 해결 방법 (번 거 로 움) 도 있 습 니 다. 다른 EB 애플 리 케 이 션 을 처리 하기에 충분 합 니 다! 다음 팝 업 창 을 처리 하 는 방법 은 FreeMyMind 의 Blog 에서 전 송 됩 니 다.
팝 업 창 을 조건 으로 처리 할 필요 가 없다 면 send keys 로 alt + f4 작업 을 직접 모 의 하면 됩 니 다. 그러나 조건 처리 가 필요 하 다 면 WindowHelper (WindowHelper. rb) 와 같은 종류의 팝 업 창 을 처리 하 는 방법 을 제공 해 야 합 니 다. 예 를 들 어:

def push_security_alert_yes
  @autoit.WinWait "Security Alert", ""
  @autoit.Send "{TAB}"
  @autoit.Send "{TAB}"
  @autoit.Send "{SPACE}"
end

이것 은 보안 경고 "yes" 단 추 를 누 르 는 것 을 모 의 하 는 방법 입 니 다. 그러나 주의해 야 할 것 은 중국어 환경 에서 이러한 방법 을 직접 사용 할 수 없습니다. 기본적으로 영어 환경 을 지원 하기 때문에 중국어 제목 의 창 을 찾 을 수 없 기 때문에 방법 을 현지 화 처리 해 야 합 니 다. 다음 과 같 습 니 다.

def push_security_alert_yes
  @autoit.WinWait "    ", ""
  @autoit.Send "{TAB}"
  @autoit.Send "{TAB}"
  @autoit.Send "{SPACE}"
end

구체 적 인 절차:
1. windowshelper 를 호출 하여 팝 업 창 을 처리 하 는 코드 를. rb 파일 에 따로 저장 합 니 다.
2. 주 프로그램 에서 팝 업 창 을 실행 하기 전에 Thread. new 로 1 의 파일 을 호출 하여 팝 업 창 을 처리 하 는 프로 세 스 를 시작 상태 로 합 니 다.
3. 팝 업 창 을 터치 하 는 작업 이 완료 되면 팝 업 창 이 나타 나 면 처리 프로 세 스 가 이 창 을 포착 하여 처리 합 니 다.
사실 여러분 들 은 이 방법의 실현 을 본 후에 코드 에서 팝 업 창 에 대한 처 리 를 쉽게 실현 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기