selenium(六)Page Object模式(使用selenium的PageFactory)

PageObject 类

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;

public class PageObject {
    private String url="http://www.baidu.com";
    //声明所有页面中用到的元素,作为类中的变量。
    //将@FindBy注解通过对应的定位方法找到的元素赋值给成员变量
    @FindBy(xpath = "//input[@id=‘kw‘]")
    public WebElement input;

    @FindBy(xpath = "//input[@id=‘su‘]")
    public WebElement  submit;

    public PageObject(WebDriver driver){
        initPage(driver);
    }

    private void initPage(WebDriver driver){
        //打开网页
        driver.get(url);
        //使用selenium的pageFactory,完成元素的初始化
        PageFactory.initElements(driver,this);
    }
    //使用搜索
    public void search(){
        input.sendKeys("12306");
        submit.click();
    }
}

测试类

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.Test;

public class Test1 {
    @Test
    public static void test() {
        System.setProperty("webdriver.chrome.driver","E:\\chromedriver_win32\\chromedriver.exe");
        WebDriver driver=new ChromeDriver();
        PageObject pageObject=new PageObject(driver);
        pageObject.search();
        Assert.assertTrue(driver.getTitle().contains("百度"),"断言失败");
    }
}

原文地址:https://www.cnblogs.com/yjh1995/p/11986574.html

时间: 2024-11-08 21:51:35

selenium(六)Page Object模式(使用selenium的PageFactory)的相关文章

浅析selenium的page object模式

selenium目前比较流行的设计模式就是page object,那么到底什么是page object呢,简单来说,就是把页面作为对象,在使用中传递页面对象,来使用页面对象中相应的成员或者方法,能更好的提现java的面向对象和封装特性,首先看一下官网的解释: Page Object Design Pattern Page Object is a Design Pattern which has become popular in test automation for enhancing tes

Python+Selenium使用Page Object实现页面自动测试 -未完待续

Page Object模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题 等),这样在Selenium测试页面中可以通过调用页面类来获取页面元素,这样巧妙的避免了当页面元素id或者位置变化时,需要改测试页面代码的情况. 当页面元素id变化时,只需要更改测试页Class中页面的属性即可. Page Object模式是一种自动化测试设计模式,将页面定位和业务操作分开,提高用例的可维护性. unittest是一种单元测试

python+ selenium&APPium page Object 设计模式

题记: 之前公司项目比较稳定, 在进行了系统测试,想用自动化测试进行冒烟测试,或者对主要功能进行测试, 因此用到了PO模式 因此做个记录: Page Object Page Object模式是使用Selenium的广大同行最为公认的一种设计模式.在设计测试时,把元素和方法按照页面抽象出来,分离成一定的对象,然后再进行组织. Page Object模式,创建一个对象来对应页面的一个应用.故我们可以为每个页面定义一个类,并为每个页面的属性和操作构建模型.体现在对界面交互细节的封装,测试在更上层使用页

python+selenium自动化软件测试(第7章):Page Object模式

什么是Page ObjectModel模式Page Objects是selenium的一种测试设计模式,主要将每个页面看作是一个class.class的内容主要包括属性和方法,属性不难理解,就是这个页面中的元素对象,比如输入用户名的输入框,输入登陆密码的输入框,登陆按钮,这个页面的url等,而方法,主要是指这个页面可以提供的具体功能.为什么选择POM?我们先看一段简单的代码如下: from selenium import webdriver import time driver = webdri

Page Object Model | POM (Selenium Webdriver For Python)

研究Selenium + python 自动化测试有近两个月了,不能说非常熟练,起码对selenium自动化的执行有了深入的认识. 从最初无结构的代码,到类的使用,方法封装,从原始函数调用,到重定义函数.从变量驱动,到数据驱动,再到关键字驱动,一步一步的默默走向自动化框架的构建.虽然还有没有投入使用,只是写几个demo,就慢慢的发现了 selenium自动用例脚本,相似功能地方,代码基本都是一样的,界面元素换个查找方式,把原来的使用 xpath方式,改为使用 id 查找,需要对每个用例脚本都要改

Test Automation With Selenium Using Page Object Design

WebDriver IntroductionA different way of automating the browser.. Create a browser-specific driver to control the browser directly and have to do this for each browser. Object oriented API. Doesn't need a real browser. No JavaScript limitations. No n

安卓自动化测试:Robotium(二)page object 模式完善测试框架

1.目前比较流行的设计模式就是page object,page object就是把页面作为对象,在使用中传递页面对象,来使用页面对象中相应的成员或者方法,能更好的提现java的面向对象和封装特性2.具体思想:测试框架分为四大类1)编写抽象父类:建立Utils包,存放工具类,用于自动完成唤醒手机.解锁.登录等前置操作,之后的用例只需继承抽象父类即可2)提取控件ID类:在工程中建立从com.pacagename.test.elements包用例存放控件ID类.命名一般以Element开头,后面接Ac

web自动化中的page object模式

一. 原理 将页面的元素定位和元素行为封装成一个page类,实现页面对象和测试用例分离 类的属性:元素定位 类的行为:元素的操作 测试用例:调用所需页面对象中的行为,组成测试用例 二. 好处 1. 当某个页面的元素发生变化,只需要修改该页面对象中的代码即可,测试用例不需要修改 2. 提高代码重用率,结构清晰,维护代码更容易 3. 测试用例发生变化时,不需要或者只需要修改少数页面对象代码即可 三. 分析 (待续...) 原文地址:https://www.cnblogs.com/cnhkzyy/p/

Page Object封装思想

文章来源:http://blog.csdn.net/zhenyu5211314/article/details/13632083 Page Object模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题等),这样在Selenium测试页面中可以通过调用页面类来获取页面元素,这样巧妙的避免了当页面元素id或者位置变化时,需要改测试页面代码的情况.当页面元素id变化时,只需要更改测试页Class中页面的属性即可. 获取