Page-Object设计模式

WebDriver实战之Page-Object设计模式

自动化脚本初写之际一定是只求完成功能测试,页面by.id、by.name、by.xpath满篇飞。业务逻辑代码重复率也是越来越高。慢慢的写着写着开始重构,开始封装一些方法。代码量好一些的人会在代码开始写之前开始预留一些接口来处理可以预见的一些功能扩展。当代码封装好咯,会发现页面元素和页面逻辑是杂糅在一起页面更改一个按钮就要去代码里面找到按钮做相应的更改。那么能不能把页面元素和页面逻辑分离开来。当页面更改我就只改page类。逻辑更改就只改logic类。那么久引出了这篇文章的主题:Page-Object设计模式

我把我以前写的功能代码翻译成Page-Object模式用了大概一个星期。有两点写在前面希望对后来者有多帮助

  1. page类元素可以是webelement或者By类型

使用方式是:@FindBy(id=“kw”)

            WebElement baiduinput;

            By baidubtn=By.id(“su”);

  1. page类一定要提前初始化不然会报错:不能初始化page类

初始化page类不能放在junit的setup()方法、TestNG的beforemorth()

我是放在每个case里面的

我的Page-Object模式是三个没用接口的主要类,test类、page类、logic类。看名字就知道每个类分别放的是什么代码,下面贴一下代码

Page类:

//重置查询

 @FindBy(id="aReset" )

  WebElement aReset;

//查找人员

By serachpsnradio=By.cssSelector("div#divSelSearchType span");

//查找单位

By serachunitradio=By.cssSelector("div#divSelSearchType span");

    

    //查看保存的查询

 @FindBy(id="aViewSaved" )

 WebElement seesaveconditions;

   

    //查询指标弹框

 @FindBy(id="dlgSelectItem" )

 WebElement searchdlg;

      

    //开始查询

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 好的,我会尽力帮助您。 首先,我们需要了解PageObject设计模式的基本思想。PageObject设计模式是一种用于描述Web应用程序用户界面的方法。它通过分离用户界面的元素和操作来使测试代码更加可维护和可读。 在Selenium中使用PageObject设计模式,我们需要创建一个类,该类描述了特定页面的元素和操作。这个类通常被称为“PageObject”。 例如,假设我们正在测试一个在线商店的登录页面。我们可以创建一个名为“LoginPage”的类,该类描述了登录页面上的所有元素,如用户名输入框、密码输入框和登录按钮。我们还可以在该类中定义方法来描述如何使用这些元素来执行操作,如输入用户名和密码并点击登录按钮。 下面是一个使用PageObject设计模式的简单示例,该示例描述了如何使用Selenium来测试登录页面: ```python from selenium import webdriver class LoginPage: def __init__(self, driver): self.driver = driver self.url = "http://www.example.com/login" self.username_input = self.driver.find_element_by_id("username") self.password_input = self.driver.find_element_by_id("password") self.login_button = self.driver.find_element_by ### 回答2: Page Object模式是一个常用的设计模式,用于改进Selenium项目的可维护性和可扩展性。基于Page Object模式的Selenium项目分为三个主要部分:测试用例、页面对象和测试执行。 首先,我们需要创建测试用例。测试用例是描述需要执行的操作和验证点的脚本。在编写测试用例时,我们应该尽可能地让测试用例保持简洁、可读性高,并且降低测试用例之间的耦合度。 接下来,我们需要创建页面对象。页面对象是Selenium页面的抽象表示,包含页面的各种元素和对应的操作方法。每个页面对象应该对应应用程序的一个页面或一个功能模块。 然后,我们将测试用例和页面对象结合起来进行测试执行。在测试执行过程中,我们通过实例化页面对象,调用其方法来操作页面元素和执行各种操作。这样的测试执行方式使得代码复用更加容易,同时使得代码更加可读性和可维护性。 在项目中,我们可以使用Selenium WebDriver来驱动浏览器,通过定位元素和操作元素来实现各种操作。使用Java语言编写测试用例和页面对象可以更好地与Selenium WebDriver集成。 通过使用基于Page Object设计模式的Selenium项目,我们可以降低测试用例的复杂度,提高测试脚本的可读性和可维护性。同时,通过封装页面对象,我们可以减少测试用例的重复代码,提高代码复用性,并且便于测试脚本的扩展和维护。 总结起来,基于Page Object设计模式的Selenium项目能够提高代码的可读性、可维护性和可扩展性,使得测试执行更加灵活和高效。 ### 回答3: 基于Page Object设计模式的Selenium项目可以用于自动化测试Web应用程序。下面我给你一个简单的示例: 1. 首先,创建一个新的Java项目,然后添加Selenium WebDriver的依赖项。 2. 创建一个名为"LoginPage"的类来表示登录页面,并继承自"BasePage"类。LoginPage类应该包含登录页面的元素定位和操作方法,如输入用户名、输入密码、点击登录按钮等。 3. 创建一个名为"HomePage"的类来表示登录成功后的首页,并同样继承自"BasePage"类。HomePage类应该包含首页的元素定位和操作方法,如检查欢迎信息、点击注销按钮等。 4. 创建一个名为"BasePage"的基类,其中封装了Selenium WebDriver的初始化和公共操作方法。在BasePage中,你可以初始化WebDriver并定义一些常用的操作方法,如点击、输入等。 5. 创建一个名为"LoginTest"的类来执行登录测试。在LoginTest中,你可以创建LoginPage对象并调用其中的方法,如输入用户名和密码,然后点击登录按钮。接着,你可以创建HomePage对象并验证欢迎信息是否正确。如果成功登录,运行测试应该会通过。 总结:基于Page Object设计模式的Selenium项目可以帮助我们实现更高效和可维护的自动化测试。通过将页面对象和操作方法封装到独立的类中,我们可以更好地组织和管理测试代码,并提高测试脚本的重用性。当应用程序发生变化时,我们只需要更新相应的页面对象,而不用修改每个测试用例。这样的设计模式能够提高测试代码的可读性、可维护性和健壮性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mason22

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值