Java自动化获取页面主题_基于Selenium2+Java的UI自动化(4) - WebDriver API简单介绍

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);

}

1f703f4550bd790bf3d7951fd833683cbfa92a4b_1_690x281.jpg

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.操作单选下拉列表

5ec6471997b056532fb2a60c685d09411c9ac3fc_1_690x422.png

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526822.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js java 反射机制_java 类加载机制和反射机制

一.类的加载机制jvm把class文件加载到内存,并对数据进行校验、解析和初始化,最终形成jvm可以直接使用的java类型的过程。(1)加载将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区中的运行时数据结构,在堆中生成一…

lambda 流 peek java_JDK8 流与λ表达式

λ表达式什么是λ表达式λ表达式有三部分组成:参数列表,箭头(->),以及一个表达式或者语句块。public int add(int x, int y) {return x y;}转换为λ表达式(int x, int y) -> x y;去除参数类型(x, y) -> x y;无参 以及 只有一个参…

理解java虚拟机工作后了解吗_JAVA入门到再次入门——深入理解JAVA虚拟机(二)|七日打卡...

前言为什么叫做入门到到再次入门请参考前一篇或个人博客,在此不再赘述,嗯哼,了解了JVM的基本运行流程以及内存结构,算是初步认识了JVM,跟着课本往前走,继续了解根据JVM的内存模型探索java当中变量的可见性以…

java访问错误404_如何解决 Java web 项目中的 404 错误

在使用 Tomcat 进行 Java Web 开发的时候,经常会遇到以下 HTTP 404 错误:错误代码为 HTTP 404(未找到),描述信息是:“The origin server did not find a current representation for the target resource or is not willing to di…

java double 的精度_Java Double的精度问题

Java.text类 DecimalFormatjava.lang.Objectjava.text.Formatjava.text.NumberFormatjava.text.DecimalFormatvoid setMaximumFractionDigits(int newValue) 设置某个数的小数部分中所允许的最大数字位数。void setMinimumFractionDigits(int newValue) …

java餐饮管理系统图片,基于jsp的酒店餐饮管理系统-JavaEE实现酒店餐饮管理系统 - java项目源码...

基于jspservletpojomysql实现一个javaee/javaweb的酒店餐饮管理系统, 该项目可用各类java课程设计大作业中, 酒店餐饮管理系统的系统架构分为前后台两部分, 最终实现在线上进行酒店餐饮管理系统各项功能,实现了诸如用户管理, 登录注册, 权限管理等功能, 并实现对各类酒店餐饮管…

php 验证码一直不对,ThinkPHP验证码老是出错怎么办

ThinkPHP验证码老是出错的解决办法:1、找到服务器php配置文件php.ini在网站根目录下建一个info.php文件。例如:D:\wwwRoot\wp 这个是网站的根目录,在此目录下,新建一个txt文档,输入如下代码:然后另存为info…

如何在php中插入数据并修改,php怎么同时向2张表里插入数据

情况是这个样子的:我要做一个发消息的表,因为接受人可能是多个,所以又给接收人一单独的表,(这种方案好还是全部都放到一张表里好点呢?)2张表的字段如下:message_id是第一张表的主键,如果收件人有…

java设计模式之道文字版,Java Web设计模式之道 PDF

资源名称:Java Web设计模式之道 PDF第一部分 仙人指路——设计模式简介第1章 设计模式概述1.1 设计模式是什么1.2 软件设计模式的发展历程1.3 作者阐述软件设计模式的主要方式第二部分 设计红宝书——设计模式原则详解第2章 设计原则之开闭原则2.1 何谓开闭原则2.2 …

matlab变量由非标量,matlab中的if语句

有条件性地执行语句语法if expressionstatementsend描述MATLAB计算表达式,如果产生一个逻辑真或者非零结果,然后就执行一条或者多条MATLAB命令语句。当有嵌套if时,每一个if必须和一个相应的end匹配。当你在if语句里面嵌套使用else if或者else…

rodbc 连接oracle,R語言 使用RODBC連接oracle數據庫

使用R語言有多種包可以連接oracle數據庫,我今天在這里講一下使用使用RODBC連接oracle數據庫。1. 如果你的本地是windows系統的話,你需要安裝oracle客戶端。2. 然后需要在ODBC管理者界面配置你要進行連接的數據庫數據及使用的驅動等信息。如下圖所示&…

oracle实验七 答案,Oracle表的常用查询实验(七)

Oracle表的常用查询实验(七)1.问题描述:有一个商品信息表,该表反应了各种商品的销售情况,一个产品是按照gid和gname两个字段来区分的,一个产品可能会有多个型号。create table T_Goods(Id int primary key,GId varchar2(10) not n…

oracle ogg00423,【案例】Oracle报错PLS-00378 PLS-00439产生原因和MOS官方解决办法

【案例】Oracle报错PLS-00378 PLS-00439产生原因和MOS官方解决办法时间:2016-11-12 21:31 来源:Oracle研究中心 作者:代某人 点击:次天萃荷净PLS-00378此版本的PL / SQL编译单元无效原因:编译单元是一个文件,其中包含的PL / SQL传递给编译器的源代…

linux系统如何备份系统软件,Linux折腾记(十三):我该如何备份系统

在前面的一些文章中,我反复提到经常会把系统搞崩溃,所以备份系统就是一件不容忽视的事情。由于Linux系统本身的优越性,系统的备份和还原还是比较容易的。主要表现在以下方面:1.Linux系统所有的数据都以文件的形式存在,…

linux kset subsystem 3.10内核,Kobject、Kset 和 Subsystem

2014年5月12日Kobject 、Kset 和 Subsy stem - 海王 - 博客园http://www.doczj.com/doc/93b5b6113b3567ec112d8a49.html/leav en/archiv e/2010/04/24/1719191.html 4/8件(2)4. Linux input 子系统 io 控制字段(2)5. linux 内核定时器 tim er_list 详解(2) (2)把kobject 的 kse…

linux 自定义vi dd,Vim常用命令及配置方案

几句话很久之前就接触到vim,初学那阵觉得vim很酷炫,但确实对新手不是很友好。我也就简单看了下基本操作就上手了,但又不是长期在vim下工作,这就导致了每一次重新使用vim都要再去回温下基本操作,很是难受,所…

linux指纹登录实现原理,指纹识别技术原理与基于Linux系统的指纹识别门禁系统设计...

指纹作为人体的身体特征,具有唯一性、稳定性和不易盗用等特点。随着指纹识别理论逐渐成熟、指纹采集工具这一难题得到解决,指纹识别已经成为目前最广泛应用的生物识别之一,逐渐取代了传统的认证识别方式,广泛应用于金融、公安、证…

linux wps历史版本下载,WPS Office 2019 For Linux 11.1.0.9604版携新更新发布下载

WPS Office 2019 For Linux 11.1.0.9604版本发布了,仅支持64位计算机,提供Deb和Rpm格式软件包下载。更新详情1、WPS公共:优化界面绘制相关api的调用效率。适配ibus和fcitx框架的输入法,解决无法输入中文,预输入显示等问…

Linux双独立显卡SLI,玩点新奇的 双显卡给你不同的“SLI”效果

显卡老是千篇一律的常规测试对于我们这些测试人员来说早就已经没有什么意思了,无非就是跑分,超频后跑分,拷机等等一些测试项目,常看我们测试的玩家应该也知道同芯片显卡除非是频率的差别非常大才会有较为明显的性能差距体现出来&a…

android win10 驱动安装失败,解决在win10系统下小米手机驱动安装失败的具体步骤...

随着系统的升级越来越快,对于许多用户的系统都已经升级到win10系统了,win10系统在给用户带来方便的同时,有时候也会遇到一些小麻烦,比如说对于最新的Window10正式版系统而言,基本主流的手机驱动都能自动检测安装。不过…