今天从最基本的建立IE对象开始讲起。
文件位置:watir-1.8.0/ie-class.rb
我们需要require 的
require 'rubygems'
require 'watir'
好啦,大家都知道创建一个IE对象的语句,那我再写下:
myie=Watir::IE.new
FINE,那我们看看这一句话都干了些神马!!!
1st. Watir是一个模块名,即Module Watir,IE是一个类名,即Class IE。当你用new方法的时候,则会自动调用该类里面的initialize函数。
2nd. 我们看看initialize函数
code:
def initialize suppress_new_window=nil
_new_window_init unless suppress_new_window
end
很好狠强大,传入了一个名为suppress_new_window,默认值为nil的参数,大家可以暂且不用管这个传入值,大部分时间咱们是用不到的,所以不用传参。继续,该函数执行_new_window_init这个函数
3rd. 我们来看_new_window_init这个函数
def _new_window_init
create_browser_window
initialize_options
goto 'about:blank'
end
执行了3个步骤,第一创建浏览器,第二初始换参数,第三是浏览器转入空白页面
4th.我们看看如何创建浏览器对象
def create_browser_window
@ie = WIN32OLE.new('InternetExplorer.Application')
end
OK,用的是WIN32OLE,创建了一个IE的对象,那现在@ie本身有什么功能呢
ie.menubar=0 '不显示IE对象菜单栏
ie.AddressBar=0 '不显示IE对象地址栏
ie.ToolBar=0 '不显示IE对象工具栏
ie.StatusBar=0 '不显示IE对象状态栏
ie.FullScreen=1 '全屏化IE对象
ie.Width=800 '设置IE对象宽度
ie.Height=600 '设置IE对象高度
ie.Resizable=0 '设置IE对象大小是否可以被改动
ie.visible=1 '设置是否可见
ie.Navigate "www.baidu.com" '设置IE对象默认指向的页面
好,因此,这里要明确一点,当前@ie这个对象已经包括了如上的方法!这些方法并不是WATIR定义的!
5th. 看看initialize_options都初始化了什么参数
def initialize_options
self.visible = IE.visible
self.speed = IE.speed
@ole_object = nil
@page_container = self
@error_checkers = []
@activeObjectHighLightColor = HIGHLIGHT_COLOR
@logger = DefaultLogger.new
@url_list = []
end
请注意@page_containner 这个是一个自身的调用
6th. 最后看一看如何GOTO
def goto(url)
@ie.navigate(url)
wait
return @down_load_time
end
大家通过前几步的学习,已经知道@ie.navigate是通过win32ole调用的InternetExplorer.application中的方法
本节结束,大家可能对goto中的wait有一些不明白,下一节会介绍wait函数!