1. 启动浏览器

前边有详细介绍启动三种浏览器的方式(IE、Chrome、Firefox);

        private WebDriver driver = null;

	private String chromeDriverDir = "D:\\workspace\\A_Test\\resource\\chromedriver.exe";

	/**
* 打开谷歌浏览器;
*/
public void openChromeBrowser(){
System.setProperty("webdriver.chrome.driver", chromeDriverDir);
driver = new ChromeDriver();
}

2.访问网页地址

方式一:

        /**
* 访问网页地址方式一;
*/
public void visitURL1(){
String baseUrl = "http://www.baidu.com/";
driver.get(baseUrl);
}

方式二:

       /**
* 访问网页地址方法二;
*/
public void visitURL2(){
String baseUrl = "http://www.sogou.com/";
driver.navigate().to(baseUrl);
}

3. 模拟后退功能

        /**
* 模拟后退功能;
*/
public void visitRecentUrl(){
String url1 = "http://www.baidu.com/";
String url2 = "http://www.sogou.com/";
driver.navigate().to(url1); //先访问百度
driver.navigate().to(url2); //再访问搜狗
driver.navigate().back(); //返回上一次返回的百度页面;
}

4.模拟前进功能

        /**
* 模拟前进功能;
*/
public void visitNextUrl(){
String url1 = "http://www.baidu.com/";
String url2 = "http://www.sogou.com/";
driver.navigate().to(url1); //先访问百度
driver.navigate().to(url2); //再访问搜狗
driver.navigate().back(); //返回上一次返回的百度页面;
driver.navigate().forward(); //从百度页面跳转的搜狗页面;
}

5. 刷新页面

        /**
* 刷新当前页面;
*/
public void refreshCurrentPage(){
String baseUrl = "http://www.sogou.com/";
driver.navigate().to(baseUrl);
driver.navigate().refresh(); //刷新当前页面
}

6.窗口最大化

        /**
* 窗口最大化
*/
public void maxWindows(){
String baseUrl = "http://www.sogou.com/";
driver.navigate().to(baseUrl);
driver.manage().window().maximize(); //窗口最大化;
}

7.获取当前页面的title属性值

        /**
* 获取当前页面的title属性值;
*/
public void getTitle(){
String url = "http://www.baidu.com/";
driver.navigate().to(url);
String title = driver.getTitle(); //获取当前页面的title值;
System.out.println(title);
}

QQ图片20161117210058.jpg1117x456 68.6 KB

8.获取当亲页面的源代码

        /**
* 获取当前页面的源代码;
*/
public void getPageSource(){
String url = "http://www.baidu.com/";
driver.navigate().to(url);
String source = driver.getPageSource(); //获取当前页面的源代码;
System.out.println(source);
}

9. 获取当前页面的网址

        /**
* 获取当前页面的网址;
*/
public void getCurrentUrl(){
String url = "http://www.baidu.com/";
driver.navigate().to(url);
String currentUrl = driver.getCurrentUrl(); //获取当前页面的网址;
System.out.println(currentUrl);
}

10. 在输入框中清空原有的文字内容

        /**
* 清空输入框原有的文字内容
*/
public void clearText(){
//获取输入框对象;
WebElement inputText = driver.findElement(By.id("kw"));
//清空输入框中的默认文字
inputText.clear();
}

11.在输入框中输入指定文本内容

        /**
* 在输入框中输入指定文本
*/
public void inputText(){
//获取输入框对象;
WebElement inputText = driver.findElement(By.id("kw"));
//编辑需要输入的文本;
String text = "UI 自动化";
//在输入框中的输入文本
inputText.sendKeys(text); //sendKeys()方法,是用于输入;
}

12.单击按钮

        /**
* 单击按钮
*/
public void clickButton(){
//获取按钮对象;
WebElement button = driver.findElement(By.id("su"));
//判断按钮是否可用
boolean isEnabled = button.isEnabled();
//如果按钮可以点击,就点击按钮;
if(isEnabled){
button.click();
}
}

13.双击元素

        /**
* 双击某个元素
*/
public void doubleClick(){
//获取输入框对象;
WebElement inputText = driver.findElement(By.id("kw"));
//声明Action对象
Actions action = new Actions(driver);
//使用doubleClick方法,双击输入框;
action.doubleClick(inputText).build().perform();
}

14.右击元素

	/**
* 右击某个元素
*/
public void rightClick(){
//获取输入框对象;
WebElement inputText = driver.findElement(By.id("kw"));
//声明Action对象
Actions action = new Actions(driver);
//使用contextClick方法,右击输入框;
action.contextClick(inputText).build().perform();
}

15.操作单选下拉列表

QQ图片20161117213829.png1077x660 61.5 KB

(1)使用下拉列表的下标选择子选项;

	/**
* 通过下标选择下拉框的值;
*/
public void operateDropListByIndex(){
//获取下拉列表元素对象;
WebElement selectElement = driver.findElement(By.id("session_kept"));
//声明Select对象;
Select select = new Select(selectElement);
//通过子选项的下标来选择:下标从0开始
select.selectByIndex(0); //表示选择第一个子选项:不保存登录状态;
}

(2)使用value选择;

	/**
* 通过子选项的value选择下拉框的值;
*/
public void operateDropListByValue(){
//获取下拉列表元素对象;
WebElement selectElement = driver.findElement(By.id("session_kept"));
//声明Select对象;
Select select = new Select(selectElement);
//通过子选项的选项的value值来选择:
String value = "60" ; //例如:“保存一小时 ” 这个选项的value值是:60
select.selectByValue(value);
}

(3)通过可见文本选择;

	/**
* 通过子选项的可见文本选择下拉框的值;
*/
public void operateDropListByVisibleText(){
//获取下拉列表元素对象;
WebElement selectElement = driver.findElement(By.id("session_kept"));
//声明Select对象;
Select select = new Select(selectElement);
//通过子选项的选项的value值来选择:
String visibleText = "保存一天" ; //例如:第6个选项的 可见文本是:“保存1天 ” ;
select.selectByVisibleText(visibleText);
}

16.操作链接

	/**
* 点击链接对象;
*/
public void clickLinkText(){
//获取链接元素对象;
WebElement link = driver.findElement(By.linkText("快速注册"));
//点击链接对象;
link.click();
}

17.操作单选按钮

	/**
* 操作单选框RadioButton
*/
public void clickRadioButton(){
//获取单选按钮元素对象;
WebElement radio = driver.findElement(By.id("identity"));
//判断单选按钮是否已经被选中;
boolean isSelect = radio.isSelected();
//如果没有选中,就点击,如果已经选中,就不操作;
if(!isSelect){
radio.click();
}
}

18.操作复选框

	/**
* 操作复选框CheckBox
*/
public void clickCheckBox(){
//获取复选框元素对象;
WebElement checkbox = driver.findElement(By.id("checked"));
//判断复选框是否已经被选中;
boolean isSelect = checkbox.isSelected();
//如果没有选中,就点击,如果已经选中,就不操作;
if(!isSelect){
checkbox.click();
}
} 我们专注于持续集成,更多原创请关注:www.hordehome.com

基于Selenium2+Java的UI自动化(4) - WebDriver API简单介绍的更多相关文章

  1. 基于Selenium2+Java的UI自动化(1) - 原理和环境搭建

    一.Selenium2的原理 Selenium1是thoughtworks公司的一个产品经理,为了解决重复烦躁的验收工作,写的一个自动化测试工具,其原理是用JS注入的方 式来模拟人工的操作,但是由于J ...

  2. 基于Selenium2+Java的UI自动化(8)- 显式等待和隐式等待

    一.隐式等待 package com.automation.waits; import java.util.concurrent.TimeUnit; import org.openqa.seleniu ...

  3. 基于Selenium2+Java的UI自动化(6)-操作Alert、confirm、prompt弹出框

    alert.confirm.prompt这样的js对话框在selenium1 时代处理起来比价麻烦,常常要用autoit来帮助处理.而现在webdriver对这些弹出框做了专门的处理,使用seleni ...

  4. 基于Selenium2+Java的UI自动化(2) - 启动浏览器

    一.准备工作 我们常用的浏览器主要有三个:chrome.Firefox.IE:其中chrome 和 IE 需要下载驱动程序,才能启动浏览器,注意驱动程序有32位和64位两种. 另外:如何查看本机的浏览 ...

  5. 基于Selenium2+Java的UI自动化(3) - 页面元素定位

    一.几种网页定位方式 webdriver的页面定位很灵活,提供了8种定位方式: 其中,常见的有三种:id .cssSelector .xpath: 一个元素如果存在 id 属性,则这个 id 的值,在 ...

  6. 基于Selenium2+Java的UI自动化(5) - 执行JavaScript脚本

    一.操作日期选择框 QQ图片20161118215530.png1336x545 22.6 KB 说明:日期选择框大部分是不支持前端输入的,因为这个对象是 readOnly,只读属性,selenium ...

  7. iOS开发UI篇—UITableview控件简单介绍

    iOS开发UI篇—UITableview控件简单介绍 一.基本介绍 在众多移动应⽤用中,能看到各式各样的表格数据 . 在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView,UIT ...

  8. 测试自动化:java+selenium3 UI自动化(2) - 启动Firefox

    1. selenium和浏览器 基于selenium的这套自动化体系,其实现关键就在于对于各浏览器的顺畅操作. 事实上当selenium刚开始起家的时候,他使用的还是javascript注入的方式来驱 ...

  9. 测试自动化:java+selenium3 UI自动化(1) - 环境搭建

    1.前言 我大概是在2012年第一次正式接触到自动化测试,那个时候跟随我的团队一起,就当时项目的UI自动化尝试做出了探索. 在我离开那家公司的时候,我们的自动化测试体系仍然难言完美,但是也已经达到了非 ...

随机推荐

  1. 看雪 安卓 dex文件

    http://bbs.pediy.com/showthread.php?t=177114

  2. position属性

    所有主流浏览器支持position属性: 任何版本的ie浏览器都不支持属性值“inherit”. position属性规定元素的定位类型,任何元素都可以定位,不过绝对定位或固定元素会生成一个块级框,不 ...

  3. 在中国Windows Azure服务中创建应用程序的一些不同之处

    Azure 中的托管服务由一个应用程序(用于在托管服务中运行)和 XML 配置文件(定义托管服务的运行方式)组成.托管服务同时使用服务定义文件 (.csdef) 和配置文件 (.cscfg).有关详细 ...

  4. Java自定义日志输出文件

    Java自定义日志输出文件 日志的打印,在程序中是必不可少的,如果需要将不同的日志打印到不同的地方,则需要定义不同的Appender,然后定义每一个Appender的日志级别.打印形式和日志的输出路径 ...

  5. 10 steps to get Ruby on Rails running on Windows with IIS FastCGI- 摘自网络

    Since the original tech preview release of FastCGI last year, we've been seeing a lot of requests fo ...

  6. 转载 GUID介绍

    转载 http://www.cnblogs.com/illele/archive/2008/02/25/1080554.html GUID(Global unique identifier)全局唯一标 ...

  7. 转载LINQ TO Entity 在数据库发生更改时更新实体数据模型 .edmx 文件

    转载原出处:http://blog.csdn.net/litao2/article/details/8629335 在“模型浏览器”中,右击 .edmx 文件,然后选择“从数据库更新模型”. 模型更新 ...

  8. 解决弹出的窗口window.open会被浏览器阻止的问题(自定义open方法)

    由于在使用window.open时,在很多情况下,弹出的窗口会被浏览器阻止,但若是使用a链接target='_blank',则不会,基于这一特点,自己封装了一个open方法: function ope ...

  9. UI进阶 数据处理之文件读写

    目录: 1-------沙盒机制(SandBox) 2-------简单对象的读写(I/O)操作 3-------复杂对象的读写(I/O)操作 一.沙盒机制(SandBox) 什么是沙盒:每个iOS应 ...

  10. angular中的promise

    angular中的promise用法 标签(空格分隔): angular 前言 Promise其实是一个规范,用类似then().then()这样的链式调用形式来处理因为异步带来意大利面条式的代码(多 ...