웹 테스트 도구 Watir
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. 팝 업 창 을 터치 하 는 작업 이 완료 되면 팝 업 창 이 나타 나 면 처리 프로 세 스 가 이 창 을 포착 하여 처리 합 니 다.
사실 여러분 들 은 이 방법의 실현 을 본 후에 코드 에서 팝 업 창 에 대한 처 리 를 쉽게 실현 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fortinet FortiWeb Web Application Firewall Policy BypassFrom: Geffrey Velasquez Date: Wed, 2 May 2012 20:33:23 -0500...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.