selenium page object模式
页面对象模式将测试代码和被测试页面的元素及操作进行分离,以降低页面元素的变化对测试代码的影响。每个被测试的页面都会被定义一个类,类中会定位元素和操作。
如果不使用page object模式,则相同的操作(查找元素和及相应的点击、输入)需要重复多次。如果页面元素发生变化,则需修改多处;万一设计该元素的操作存在多个文件,其工作量就大大增加。封顶
使用pageFactory类给测试代码提供待操作元素
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
//百度页面搜索
public class searchObject {
@FindBy(id = "kw")
public WebElement searchKey;
@FindBy(id = "su")
public WebElement searchButton;
@FindBy(css = "span.nums_text")
public WebElement searchResult;
public searchObject(WebDriver driver){
PageFactory.initElements(driver,this);
}
} 创建测试类
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.*; import java.util.concurrent.TimeUnit; //将要写的搜索功能转化为page object
public class SeleniumWork2 {
WebDriver driver;
@BeforeMethod
public void beforeC(){
String chromepath =System.getProperty("user.dir") + "/src/driver/chromedriver";
System.setProperty("webdriver.chrome.driver",chromepath);
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
driver.get("http://baidu.com");
}
@Test
public void search1th(){
searchObject search1 = new searchObject(driver);
search1.searchKey.sendKeys("appium");
search1.searchButton.click();
Assert.assertTrue(search1.searchResult.getText().contains("百度为您找到相关结果"));
System.out.println(search1.searchResult.getText());
}
@Test
public void search2th(){
searchObject search1 = new searchObject(driver);
search1.searchKey.sendKeys("selenium");
search1.searchButton.click();
Assert.assertTrue(search1.searchResult.getText().contains("百度为您找到相关结果"));
System.out.println(search1.searchResult.getText());
}
@AfterMethod
public void tearDown(){
driver.close();
}
}

selenium page object模式的更多相关文章
- 【C#|.NET】从细节出发(三) 逻辑层事务和page object模式
一. 业务逻辑层的事务问题 如果你的程序分层清晰并且系统禁用复杂存储过程,那么在DA中的职责比较单一.程序的逻辑通过BLL调用各种不同模块的DA来实现数据操作.如果当需要不同模块在一个事务的时候,问题 ...
- Selenium Page Object(PO)设计模式
Webdriver UI自动化测试火了好几年了,具体怎么设计自动化测试测试工程,组织测试用例完全凭借着自己的经验和习惯. 最近忽然听说了Page Object(简称PO)火了起来,也有面试的时候被问到 ...
- 转 Page Object模式
Page Object模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题 等),这样在Selenium测试页面中可以通 ...
- UI自动化测试的Page Object模式
在UI级的自动化测试框架中,当页面样式改变或者页面元素属性改变,那么代码也要随之进行修改,如何做到高效快速的修改代码来适应这些改变呢,这个时候可以引入Page Object模式,也是页面对象设计模式. ...
- 浅析selenium的page object模式
selenium目前比较流行的设计模式就是page object,那么到底什么是page object呢,简单来说,就是把页面作为对象,在使用中传递页面对象,来使用页面对象中相应的成员或者方法,能更好 ...
- python+selenium自动化软件测试(第7章):Page Object模式
什么是Page ObjectModel模式Page Objects是selenium的一种测试设计模式,主要将每个页面看作是一个class.class的内容主要包括属性和方法,属性不难理解,就是这个页 ...
- 使用page object模式抓取几个主要城市的pm2.5并从小到大排序后写入txt文档
#coding=utf-8from time import sleepimport unittestfrom selenium import webdriverfrom selenium.webdri ...
- Page Object 模式编写UiAutomator脚本
在我们学习Page Object Model之前,我们先了解一下Page Object Model(以下简称POM). 为什么要POM 用UiAutomator启动UI自动化测试不是一件困难的任务.你 ...
- selenium page object model
Page Object Model (POM) & Page Factory in Selenium: Ultimate Guide 来源:http://www.guru99.com/page ...
随机推荐
- KMP 详解图
- L1-024 后天
如果今天是星期三,后天就是星期五:如果今天是星期六,后天就是星期一.我们用数字1到7对应星期一到星期日.给定某一天,请你输出那天的“后天”是星期几. 输入格式: 输入第一行给出一个正整数D(1 ≤ D ...
- tomcat部署和启动
- jsp:incloud用法
为什么要用jsp:incloud 因为单独一个页面太大,需要嵌套子页面,当请求有父页面的时候,子页面会自动加载<jsp:include page="/agentProfitShareN ...
- nw 调用系统命令
---------------------------------------------------------------------------------------------------- ...
- django会话跟踪技术
目录 django中的会话跟踪技术 什么是会话跟踪技术 HTTP无状态协议 Cookie概述 什么是cookie cookie源码 cookie超长时间 cookie超长时间 cookie生效路径 删 ...
- Android Studio - 安卓开发工具 打开后报错集合、修复指南
安卓开发工具错误修复 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创新 ...
- HDU 6188:Duizi and Shunzi(贪心)(广西邀请赛)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6188 题意 有n个数字,每个数字小于等于n,两个相同的数字价值为1,三个连续的数字价值为1 .问这n个 ...
- Hibernate4.3配置
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hi ...
- hdu2067 小兔的棋盘 DP/数学/卡特兰数
棋盘的一角走到另一角并且不越过对角线,卡特兰数,数据量小,可以当做dp求路径数 #include<stdio.h> ][]; int main() { ; ) { int i,j; lon ...