`
jy503160
  • 浏览: 20142 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

(转)Page-Object使用

 
阅读更多

第一次了解这个框架是在乙醇的框架中。简单几个语句,借用脚本的可看性,直接用语言将页面数据化。感觉这个框架的作者深懂po模式,采用这套框架做元素处理的话,可以将脚本的维护性降低,提高其健壮性!废话少说,直接开始。

下载安装Page-Object

方法一:gem install Page-Object

方法二:直接从githubclone。地址如下:https://github.com/cheezy/page-object

QA:如若提示DevKit尚未安装,请自行去官网下载相关版本的DevKit;下载完后解压至相关文件夹,做三步操作:

> cd <DEVKIT_INSTALL_DIR>

> ruby dk.rb init

#生成config.yml,这里会检查将要添加DevKit支持的Ruby列表,只支持通过RubyInstaller安装的Ruby

#如果这里列出的Ruby与你的要求不符,可以手动修改

> ruby dk.rb review #检查要添加DevKit支持的Ruby列表是否有误,可以略过

> ruby dk.rb install

[INFO] Updating convenience notice gem override for 'C:/Ruby192'

[INFO] Installing 'C:/Ruby192/lib/ruby/site_ruby/devkit.rb'

至于从githubclone,由于本人尚未尝试,如有错误,自行百度谷歌

 

 

 

 

 

简单使用Page-Object

业务流程:打开百度,输入SB,点击百度

① 建立百度页面的class

② 建立测试CASE

③ 执行并生成结果

Baidu_Page.class代码如下:

 

require 'Page-Object'

class Baidu_Page

include PageObject

page_url "www.baidu.com" #定义了该页面的url

text_field "keyword" ,id: "kw" #元素的定位与命名方法1

button(:check,:id=>"su") #元素的定位与命名方法2

End

 

 

该框架的核心就是page-Object模版;

 

Test.class代码如下:

require 'watir-webdriver'

require_relative 'baidu_page' # require默认加载lib下的,如果要加载其他文件夹的可以

#使用require_relative,取文件本身的相对路径

class Test

browser=Watir::Browser.new :firefox

page= Baidu_Page.new(browser,true) #这里是page-object的初始化方法传送一个#browser的对象,若为true且该page类中page_url存在值,则初始化的同时通过browser

#去访问page_url。也可以page= Baidu_Page.new(browser),然后通过下方注释那种去访问#URL。

# page.navigate_to 'www.baidu.com'

page.keyword='sb'

page.check

End

 

Page-Object中对于DOM元素定位与watir-webdriver一样。可以参考上方baidu_page的代码。这里具体讲下page.keywordpage.check的方法:

1. 对于可以setdom元素,你使用=就可以进行set,如page.keyword=sb

2. 对于有text内容的dom元素,你直接调用就是显示其text内容,如:p:p_show,id:”p1” ;Page.p_show就是打印其text内容

3. 对于可以clickdom元素,你直接调用就是click操作,如:page.check

4. 可能有的人要问如果就是要获取这个元素的对象,那么你可以直接page.check_element。这个就是返回elements对象

 

当然还有一些对于AJAXJSFRAME的操作,封装的也不错;可以参考原作者github

 

 

参考链接:https://github.com/cheezy/page-object/wiki

第七城市th7cn
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics