第一次了解这个框架是在乙醇的框架中。简单几个语句,借用脚本的可看性,直接用语言将页面数据化。感觉这个框架的作者深懂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
相关推荐
本压缩包"RobotFramework中实现PageObject模式的轻量级关键字库_Python_RobotFramework.zip"包含了使用Python语言和Robot Framework实现PageObject模式的示例库。 首先,我们需要了解PageObject模式的基本概念。...
在本项目中,我们重点关注的是Page Object(PO)模式,这是一种设计模式,用于组织和管理自动化测试代码,使其更易于维护和扩展。 PO模式的核心思想是将Web页面的UI元素和与其相关的业务逻辑封装成一个独立的类,每...
[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运行...
接下来,我们看看如何使用unittest框架来组织Page Object模式的测试用例。unittest是Python内置的一个单元测试框架,它提供了一套完整的测试结构,包括测试用例的组织、断言方法、异常处理等。 在unittest中,我们...
在我们的例子中,"Selenium使用PageObject模式测试登陆页面",首先我们需要创建一个表示登录页面的PageObject类。这个类可能包含以下内容: 1. **元素定义**:如用户名输入框、密码输入框、登录按钮等,可以使用`...
在这种情况下,可以使用自定义的构造函数来传递额外的参数,Page Factory将根据这些参数来初始化Page Object。 #### 总结 Page Factory模式是WebDriver中一个非常有用的功能,它通过减少重复代码,增强了代码的...
通过从安装软件包,也可以在命令行中使用Selenium Page Object Generator。 该模板使用表达式,这是一种简洁的无逻辑语义模板语言。 这是BETA的早期版本,预计会具有粗糙的边缘和有限的功能。 目前,它支持3个...
Page-Object-Model 是一种软件设计模式,用于改善 Selenium 和其他 Web 自动化框架的代码结构和可维护性。在 POM 模式下,每个网页或页面区域都有一个对应的 Page Object 类,其中包含了与该页面相关的所有操作和...
Python页面对象模型在 上演示了自动化测试工具python 3.6、3.7、3.8、3.9 框架库报告[docker]( )无头自动化连续测试快速开始从shell的根目录中,执行以下步骤: 克隆存储库克隆后使用您的name和email首次配置git ...
在"pageobject"这个压缩包中,可能包含了实现PageObject模式的Python代码示例,你可以通过查看这些文件来进一步了解如何在Python和Selenium中使用PageObject。这些文件可能包括不同页面的PageObject类,以及如何在...
余烬经典页面对象 在周围提供一个超级简单的类包装器。 用法 给定一个简单的ToggleButton组件,只需使用如下模板即可切换其活动状态: <...import PageObject , { clickable } from 'ember-clas
标题中的"PyPI 官网下载 | page_object-0.3.4.tar.gz"表明这是一个在Python Package Index(PyPI)上发布的软件包,名为`page_object`,版本为0.3.4,且文件格式为tar.gz。PyPI是Python社区官方的第三方软件包仓库,...
用户友好的消息和更简单的语法: const page = create ( { link : { scope : 'a' , href : attribute ( 'href' ) , isHighlighted : hasClass ( 'highlighted' ) , } ,} ) ;assert . po ( page . element ) . text ...
- **Web元素**:在PageObject类中,定义Web元素作为私有属性,并使用@FindBy、@FindByList等注解进行元素定位。 - **业务逻辑方法**:PageObject类中提供的一系列方法,用于执行特定的页面操作。 在实际应用中,...
在"Page-Object-Model-main"这个项目中,可能会包含以下内容: 1. `page_objects`模块:包含了所有页面对象类,如`CountdownPage`。 2. `test_cases`模块:包含了各种测试用例,使用页面对象进行测试。 3. `utils`...
步骤页面对象 最终测试项目(Selenium + Python) Добрыйдень。...“ test_product_page.py” ----'pytest -s -v --tb = line --language = zh-m -need_review test_product_page.py' 4通过,7被取消选择
适合初级的测试开发 想要了解如何使用selenium和python编写ui自动化 并使用了Pageobject模式,和python测试框架 pytest 其中pageObject+pytest学习是用chatgpt4.0生成的。
**Cypress与PageObject模式** 在自动化测试领域,Cypress是一个快速、强大的端到端测试框架,它以其直观的API和即时反馈而受到开发者们的喜爱。PageObject模式是一种设计模式,用于组织和抽象UI交互,使得测试代码...