第一次了解这个框架是在乙醇的框架中。简单几个语句,借用脚本的可看性,直接用语言将页面数据化。感觉这个框架的作者深懂po模式,采用这套框架做元素处理的话,可以将脚本的维护性降低,提高其健壮性!废话少说,直接开始。
下载安装Page-Object
方法一:gem install Page-Object
方法二:直接从github上clone。地址如下: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'
至于从github上clone,由于本人尚未尝试,如有错误,自行百度谷歌
简单使用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.keyword与page.check的方法:
1. 对于可以set的dom元素,你使用=就可以进行set,如page.keyword=‘sb’
2. 对于有text内容的dom元素,你直接调用就是显示其text内容,如:p:p_show,id:”p1” ;Page.p_show就是打印其text内容
3. 对于可以click的dom元素,你直接调用就是click操作,如:page.check
4. 可能有的人要问如果就是要获取这个元素的对象,那么你可以直接page.check_element。这个就是返回elements对象
当然还有一些对于AJAX、JS、FRAME的操作,封装的也不错;可以参考原作者github
参考链接:https://github.com/cheezy/page-object/wiki
相关推荐
自动化脚本初写之际一定是只求完成功能测试,页面by.id、by.name、by.xpath满篇飞。业务逻辑代码重复率也是...我把我以前写的功能代码翻译成Page-Object模式用了大概一个星期。有两点写在前面希望对后来者有多帮助
[page-object-python-selenium]由以下工具赞助; 请通过查看并注册免费试用来帮助支持我们使用Python的Selenium页面对象模型页面对象模型(POM)是一种模式,您可以将其应用于开发高效的自动化框架。 使用页面模型,...
只是nightwatch.js的页面对象页面对象脚本结构的最佳实践页面对象nightwatch.js运行测试dir $ nightwatch -t [your_testfile.js] 例子$ cd simply-page-object$ nightwatch -t tests/login_test.js Nightwatchjs运行...
通过从安装软件包,也可以在命令行中使用Selenium Page Object Generator。 该模板使用表达式,这是一种简洁的无逻辑语义模板语言。 这是BETA的早期版本,预计会具有粗糙的边缘和有限的功能。 目前,它支持3个...
Python页面对象模型在 上演示了自动化测试工具python 3.6、3.7、3.8、3.9 框架库报告[docker]( )无头自动化连续测试快速开始从shell的根目录中,执行以下步骤: 克隆存储库克隆后使用您的name和email首次配置git ...
Selenium使用PageObject模式测试登陆页面,列出了一些测试用户,主要实现的登陆页面的自动测试
余烬经典页面对象 在周围提供一个超级简单的类包装器。 用法 给定一个简单的ToggleButton组件,只需使用如下模板即可切换其活动状态: <...import PageObject , { clickable } from 'ember-clas
根据系统写的一个PageObject 框架,可以应用在其他系统,但是要写自己系统的page,仅供参考
用户友好的消息和更简单的语法: const page = create ( { link : { scope : 'a' , href : attribute ( 'href' ) , isHighlighted : hasClass ( 'highlighted' ) , } ,} ) ;assert . po ( page . element ) . text ...
主要介绍了Python+Selenium使用Page Object实现页面自动化测试,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
步骤页面对象 最终测试项目(Selenium + Python) Добрыйдень。...“ test_product_page.py” ----'pytest -s -v --tb = line --language = zh-m -need_review test_product_page.py' 4通过,7被取消选择
这是Selenium页面对象生成器https://chrome.google.com/webstore/detail/selenium-page-object-gene/epgmnmcjdhapiojbohkkemlfkegmbebb的副本,该副本已由Storm Automation stormautomation定制为专门用于Storm Test...
该框架是用Python编写的,基于Page对象模型-一种设计模式,可以轻松维护和开发健壮的测试。 我们还在此存储库中包含了基于播放器界面模式的API测试自动化框架。 现在,您可以将API测试以及Selenium和Appium测试一起...
Page Object只是将它们建模为测试代码中的对象。 这减少了重复代码的数量,并且意味着如果UI更改,则仅需要在一个地方应用此修复程序。 该模式最初是由Selenium引入的 您可以在此处找到有关此设计模式的更多信息:...
RobotFramework中实现PageObject模式的轻量级关键字库_Python_RobotFramework.zip
该框架是用Python编写的,基于Page对象模型-一种设计模式,可以轻松维护和开发健壮的测试。 我们还在此存储库中包含了基于播放器界面模式的API测试自动化框架。 现在,您可以编写API测试以及Selenium和Appium测试。...
这是Selenium页面对象生成器https://chrome.google.com/webstore/detail/selenium-page-object-gene/epgmnmcjdhapiojbohkkemlfkegmbebb的副本,该副本已由Storm Automation stormautomation定制为专门用于Storm Test...
这是Jet Brains在2021.1版的IntelliJ Idea中宣布的页面对象“生成器”(picker)的演示存储库。 为了自己尝试,您应该拥有Ultimate版本 在文件>设置>插件中添加Selenium插件(搜索Selenium或Jdi) 安装插件后,在...
Cheezy的页面对象代码生成器(Ruby) 安装 首先,将Ajax注入到您需要...Alt + P开始生成Page Object属性(再次Alt + P停止) Alt + R开始录制方法 去做 添加对更多元素(如选择列表)的支持 融入无缝的Chrome扩展程序
puppeteer-pom-example 跑步: npm installnpm start要以无头模式运行,请将.env文件中的'HEADLESS'值更改为'true'。