selenium java 封装
1、简单介绍
1)展示如何封装selenium的api,使其符合我们的使用需求;
2)展示如何使用page object模式写selenium脚本;
3)展示如何即时查找元素,用以操作ajax页面;
2、封装selenium的api
以下是BasePage.java的代码;
用于展示方法,所以只封装了部分selenium的api;
package com.ddg.fundstransfer.tools; import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement; import java.util.concurrent.TimeUnit; /**
* Created by Terry on 2017/9/27.
*/
public class BasePage {
WebDriver driver;
WebElement element;
public BasePage(WebDriver driver){
this.driver=driver;
this.driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}
public WebDriver getDriver(){
return this.driver;
}
public WebElement findElement(CustomLocator locator){
if(locator.type.equals("css")) {
this.element = driver.findElement(By.cssSelector(locator.value));
}
return element;
}
public String getTitle(){
return this.driver.getTitle();
}
public void quit(){
this.driver.quit();
}
}
3、应用page object模式和即时查找元素;
package com.ddg.fundstransfer.pages; import com.ddg.fundstransfer.tools.BasePage;
import com.ddg.fundstransfer.tools.CustomLocator;
import org.openqa.selenium.WebDriver; /**
* Created by Terry on 2017/9/27.
*/
public class BaiduHomePage extends BasePage {
String url = "https://www.baidu.com/";
CustomLocator userInput = new CustomLocator("css", "#kw");
CustomLocator searchBtn = new CustomLocator("css", "#su"); public BaiduHomePage(WebDriver driver){
super(driver);
super.getDriver().get(this.url);
super.getDriver().manage().window().maximize();
} public void Search(String keyword){
super.findElement(userInput).sendKeys(keyword);
super.findElement(searchBtn).click();
}
}
4、测试脚本
package com.ddg.fundstransfer.tests; import com.ddg.fundstransfer.pages.BaiduHomePage;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test; /**
* Created by Terry on 2017/9/27.
*/
public class TestBaiduHomePage {
WebDriver driver;
BaiduHomePage baiduPage;
@BeforeTest
public void setup(){
driver = new ChromeDriver();
baiduPage = new BaiduHomePage(driver);
}
@AfterTest
public void teardonw(){
driver.quit();
} @Test
public void testBaiduHomePage(){
baiduPage.Search("china");
System.out.print(baiduPage.getTitle());
} }
selenium java 封装的更多相关文章
- selenium第一课(selenium+java+testNG+maven)
selenium介绍和环境搭建 一.简单介绍 1.selenium:Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包 ...
- 【原创】中文分词系统 ICTCLAS2015 的JAVA封装和多线程执行(附代码)
本文针对的问题是 ICTCLAS2015 的多线程分词,为了实现多线程做了简单的JAVA封装.如果有需要可以自行进一步封装其它接口. 首先ICTCLAS2015的传送门(http://ictclas. ...
- Selenium+Java+TestNG环境配置
1. JDK 2.eclipse+TestNG >TestNG安装. Name:testng Location:http://beust.com/eclipse.如图: 3.seleniu ...
- java封装的方法
java封装是由Java是面向对象程序设计语言的性质决定的,面向对象程序设计语言的三大特性之一就是封装.封装其实就是包装的意思,从专业的角度来看,就是把对象的所有组成部分组合在一起,保护私有属性. 如 ...
- selenium+java破解极验滑动验证码的示例代码
转自: https://www.jianshu.com/p/1466f1ba3275 selenium+java破解极验滑动验证码 卧颜沉默 关注 2017.08.15 20:07* 字数 3085 ...
- 行为驱动:Cucumber + Selenium + Java(二) - 第一个测试
在上一篇中,我们搭建好了Selenium + Cucumber + Java的自动化测试环境,这一篇我们就赶紧开始编写我们的第一个BDD测试用例. 2.1 创建features 我们在新建的java项 ...
- 行为驱动:Cucumber + Selenium + Java(一) - 环境搭建
1.1 什么是行为驱动测试 说起行为驱动,相信很多人听说过. 行为驱动开发-BDD(Behavior Driven Development)是一个诞生于2003年的软件开发理念.其关键思想在于通过与利 ...
- Selenium+Java的TestNG测试报告优化
本博主很懒,但学习很勤快,一般能从博客园直接转载的东西,本博主绝不动手写,无奈Selenium+java生成的测试报告在百度上搜索..反正我是没有看到.后来才知道TestNG它可以自动生成测试报告,但 ...
- Selenium Java环境配置
Selenium Java环境配置 上次配置的是C#的环境,今天主要来配置一下Java环境. 首先,对于java环境配置最基础的JDK和JRE 先前我做过配置,这里就不重述了,网上的教程超级多.在基础 ...
随机推荐
- Linux——Django 开发环境部署(二)python版本控制器pyenv
python版本控制器pyenv 之前的 那篇是说明了django环境的site package完全独立出来了,但是使用的python解释器还是系统的,为了继续独立出来,甚至是达到ruby的rvm的自 ...
- Google Chrome 35 Released – Install on RHEL/CentOS 6 and Fedora 20-15
Google Chrome is a freeware web browser developed by Google Inc. Google Chrome team proudly announce ...
- Windows web服务器搭建---阿里云
前提步骤: 1)申请域名---- 阿里云.花生壳.万维网等等. 2)云主机购买-----阿里云.腾讯云.京东云等等. 3)网站备案,此步骤最长. 4)建立网站 5)部署网站 下面主要介绍如何部署网 ...
- JavaScript Array splice函数
// 原来的数组 var array = ["one", "two", "four"]; // splice(position, numbe ...
- 基于RxJava2+Retrofit2精心打造的Android基础框架
代码地址如下:http://www.demodashi.com/demo/12132.html XSnow 基于RxJava2+Retrofit2精心打造的Android基础框架,包含网络.上传.下载 ...
- Git常用统计命令
上周要做个汇报PPT涉及到个人对项目贡献量,在网上搜集了些常用统计命令,总结如下: 1.统计代码提交量(包括添加.删除): git log --author="$(gitconfig--ge ...
- FormatFloat
http://www.delphibasics.co.uk/RTL.asp?Name=FormatFloat 1 function FormatFloat ( const Formatting : ...
- MySQL_知识点
1.执行顺序 语句模板: (8)SELECT (9)DISTINCT (11)<Top Num> <select list> (1)FROM [left_table] (3)& ...
- eclipse导入svn工程,在文件夹里面不展示svn工程图标
原因:没有安装subclipse插件 解决方法:在marketplace中搜索插件名字:subclipse,点击安装,或者在instal new software中输入插件名字,安装完成之后,在文件夹 ...
- [转]maven2中snapshot快照库和release发布库的应用
[转载声明] 转载时必须标注:本文来源于铁木箱子的博客http://www.mzone.cc [原文地址] 原文永久地址是:http://www.mzone.cc/article/279.html 在 ...