starky(爱在西元前) 2007 Blog  
去生活就像这个世界便是天堂^_^

因为watir无法录制脚本,只能自己动手写了。但是要知道当前html页面有哪些控件才能写脚本。
于是先用irb来察看ogame的主页面:

irb(main):001:0> require 'watir'
=> true
irb(main)
:002:0> ie = Watir::IE.start("http://www.ogame.com.cn")
上面的代码打开了一个ie页面,并且访问ogame的中国主页。

等页面全部显示以后,用 ie.show_all_objects 来显示ie中的所有对象:
html document name=mainframe id=  src=/index.php?frameset=1

原来用了frame,什么都看不到。。。

继续察看,ie.show_frames,只有一个frame,
继续调用ie.frame("mainframe").show_all_objects,还是只有一个name为空的frame显示出来,why?
ie.frame("mainframe").frame("")..show_all_objects,终于出来了!
-----------Objects in  page -------------
text
/css          id=               
text
/JavaScript   id=                 src=              
                  name
=               id=               
                  name
=               id=               
                  name
=               id=               
                  name
=               id=               
                  name
=               id=               
                  name
=               id=               
                  name
=               id=               
text
/javascript   id=                 src=http://www.google-analytics.com/urchin.js
text/javascript   id=                 src=              
text
/javascript   id=                 src=              
hidden            name
=timestamp      id=                 value=1172032220    alt=                src=              
hidden            name
=v              id=                 value=2             alt=                src=              
select
-one        name=Uni            id=                 value=            
text
/javascript   id=                 src=              
text              name
=login          id=                 value=              alt=Login           src=              
password          name
=pass           id=                 value=              alt=Passwort        src=              
image             name
=               id=                 value=Login         alt=                src=http://www.ogame.com.cn/portal/img/main/login.gif
                  name=               id=               
                  name
=               id=               
                  name
=               id=               
                  name
=               id=               
                  name
=               id=               
                  name
=               id=               
                  id
=               
                  id
=                 value=0           
                  id
=                 value=0           
                  id
=                 value=0           
                  name
=               id=               
                  name
=               id=               
                  name
=               id=               
                  name
=               id=               
                  name
=               id=               
                  name
=               id=    

可以看到4个object是需要的,Uni,login,pass,submit用的login .

require 'watir' 

ie 
= Watir::IE.new 
ie
.goto("http://www.ogame.com.cn"

# Step 2: enter name and pass
ie.frame("mainframe").frame("").select_list( :name , "Uni").select("2. 宇宙")
ie
.frame("mainframe").frame("").text_field(:name, "login").set("xxxx")
ie
.frame("mainframe").frame("").text_field(:name, "pass").set("xxxxx"
ie
.frame("mainframe").frame("").button(:value, "Login").click
上面的代码自动选择宇宙,填入用户名和密码,并且点击login 按钮。
posted on 2007-02-21 15:40  爱在西元前  阅读(478)  评论(1)    收藏  举报