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 封装的更多相关文章

  1. selenium第一课(selenium+java+testNG+maven)

    selenium介绍和环境搭建 一.简单介绍 1.selenium:Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包 ...

  2. 【原创】中文分词系统 ICTCLAS2015 的JAVA封装和多线程执行(附代码)

    本文针对的问题是 ICTCLAS2015 的多线程分词,为了实现多线程做了简单的JAVA封装.如果有需要可以自行进一步封装其它接口. 首先ICTCLAS2015的传送门(http://ictclas. ...

  3. Selenium+Java+TestNG环境配置

    1. JDK 2.eclipse+TestNG >TestNG安装.   Name:testng  Location:http://beust.com/eclipse.如图: 3.seleniu ...

  4. java封装的方法

    java封装是由Java是面向对象程序设计语言的性质决定的,面向对象程序设计语言的三大特性之一就是封装.封装其实就是包装的意思,从专业的角度来看,就是把对象的所有组成部分组合在一起,保护私有属性. 如 ...

  5. selenium+java破解极验滑动验证码的示例代码

    转自: https://www.jianshu.com/p/1466f1ba3275 selenium+java破解极验滑动验证码 卧颜沉默 关注 2017.08.15 20:07* 字数 3085  ...

  6. 行为驱动:Cucumber + Selenium + Java(二) - 第一个测试

    在上一篇中,我们搭建好了Selenium + Cucumber + Java的自动化测试环境,这一篇我们就赶紧开始编写我们的第一个BDD测试用例. 2.1 创建features 我们在新建的java项 ...

  7. 行为驱动:Cucumber + Selenium + Java(一) - 环境搭建

    1.1 什么是行为驱动测试 说起行为驱动,相信很多人听说过. 行为驱动开发-BDD(Behavior Driven Development)是一个诞生于2003年的软件开发理念.其关键思想在于通过与利 ...

  8. Selenium+Java的TestNG测试报告优化

    本博主很懒,但学习很勤快,一般能从博客园直接转载的东西,本博主绝不动手写,无奈Selenium+java生成的测试报告在百度上搜索..反正我是没有看到.后来才知道TestNG它可以自动生成测试报告,但 ...

  9. Selenium Java环境配置

    Selenium Java环境配置 上次配置的是C#的环境,今天主要来配置一下Java环境. 首先,对于java环境配置最基础的JDK和JRE 先前我做过配置,这里就不重述了,网上的教程超级多.在基础 ...

随机推荐

  1. B树、B-树、B+树、B*树(转)

    B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right): 2.所有结点存储一个关键字: 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树: 如: B ...

  2. 远程链接mysql数据库

    mysql -P3306 -uroot -proot 显示最大连接数 show variables like '%max_connections%'; 设置最大链接数 ;//默认100--只对当前进程 ...

  3. android实现免费短信验证

    代码地址如下:http://www.demodashi.com/demo/12541.html 前言 获取短信验证码的的第三方很多,今天介绍一个获取短信验证码的demo,它有以下优势 短信到达率几乎1 ...

  4. 由需求而产生的一款db导出excel的工具

    代码地址如下:http://www.demodashi.com/demo/12062.html 程序员最大的毛病可能就是懒,因为懒所以做出了许许多多提高自己工作效率的工具. 起因于我是商业开发,既然是 ...

  5. 工作总结 sql 中过滤条件 中的 (where中的) and

    总结: 在where 后面做过滤的时候 如果  有 字段1 必须满足某种值   字段2 要满足 某种或某值的时候  直接   and 字段1 = ‘a’   and    字段2 = ‘b’ or 字 ...

  6. About the Apple Captive Network Assistant

    If you’re a mac user, you likely have seen a strange popup window appear on your computer when you t ...

  7. 【已解决】 iView-admin 动态路由问题

    IView-admin 在使用的时候 跳转客户详细后,点击其它页面,然后再从选项卡进入页面时,发下控制台 报错,不能正常打开客户详细页面 [vue-router] Route with name 'c ...

  8. SpringCloud如何配置Eureka授权

    现在已经成功的实现了一个Eureeka的服务启动以及微服务的注册配置操作,但是现在的程序有一个问题,你自己公司的Eureka服务应该可以注册的服务只能够是满足于认证要求的微服务,所有这样来在之前所进行 ...

  9. Unity UGUI——提供可视功能的UI组件(Text)

    基本属性介绍 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTXJfQUhhbw==/font/5a6L5L2T/fontsize/400/fill/I0J ...

  10. Y2K Accounting Bug - 2586

      Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11271   Accepted: 5672 Description Ac ...