一、selenium 简介

Selenium是ThroughtWorks公司一个强大的开源Web功能测试工具系列,包括Selenium-IDE、Selenium-RC、Selenium-Webdriver 以及Selenium-Grid。

Selenium 2.0的主要新功能是集成了Webdriver的API。Webdriver的设计提供一个更简单、更简洁的编程接口以及解决的Selenium-RC API中的一些限制。Selenium-Webdriver的开发是为了更好地支持动态网页的页面元素可能已经更改,但本身不被重新加载的页面。Webdriver的目标是提供一个设计良好的面向对象的API、提供更好的支持,为Web应用程序测试问题。

Selenium版本介绍

selenium 1.0   =   seleniumGrid +  seleniumide  + seleniumRc

selenium 2.0   =   selenium1.0   +   webdriver

selenium 3.0  变更:

1)移除seleniumRc

2)全面拥抱 Java

3)Firefox 和 safari 推出自己的 Webdirver

4)selenium2.0 支持IE7-11,selenium 3.0支持IE 9 +

二、Selenium 环境搭建

1.下载JDK、安装JDK

2.配置Java 环境

1)设置JAVA_HOME 环境变量:安装路径

2) 设置Path值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

3) 设置CLASSPATH: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

4) 校验是否安装完成可以在控制台输入: java –version

5) 安装IDEA集成开发环境

3.Maven是一个项目管理工具,可以通过项目进行构建打包管理项目中所需的jar包。通过Idea 新建 maven工程。注意:pom.xml 中需引入selenium所需要的jar包

三、认识TestNG

testng是一个强大的测试框架,类似于junit,提供了强大的注解,便于对case的各种操作。

TestNG引入:Pom.xml 添加如下:

<dependency>

<groupId>org.testng</groupId>

<artifactId>testng</artifactId>

<version>6.9.10</version>

</dependency

TestNG注解:

1)@Test:管理用例,1个test代表一个用例。

2)@BeforeTest:所有Test运行之前执行(只执行1次,类似数据准备打开浏览器)

3)@BeforeMethed:每一个Test运行前执行1次(类似于创建用户操作)

4)@AfterTest:所有Test运行之后执行(只执行1次,类似于关闭浏览器炒作)

5)@AfterMethed:每一个Test运行之后执行1次

常用校验方式:

相等:Assert.assertEquals()

不相等:Assert.assertNotEquals()

为空:Assert.assertNull()

不为空:Assert.assertNotNull()

四、Selenium入门操作

启动浏览器操作:

--启动Chrome浏览器:(谷歌浏览器默认安装路径)

1.需要chromedriver.exe

下载地址:https://sites.google.com/a/chromium.org/chromedriver/downloads

2.工程根目录下新建drivers文件夹,并把chromedriver.exe放入

3.启动Chrome 浏览器,如图:

public class openChromTest {
/* 启动谷歌浏览器
1、创建ChromeDriver对象
2、获取地址,打开百度页面
*/
@Test
public void openGe(){
WebDriver driver =new ChromeDriver();
driver.get("https://www.baidu.com");
}

--启动IE浏览器操作:(IE安装目录为指定位置)

1.需要IEDriverServer.exe

2.下载地址(http://selenium-release.storage.googleapis.com/index.html)IE的exe文件分64位与32位,请根据自已的机器选择相应的exe文件

3.启动IE 浏览器,如图:

 /*
*1、指定IEDriverServer.exe路径
*2、new一个InternetExplorerDriver 对象,启动IE浏览器
*/
@Test
public void openIETest(){
System.setProperty("webdriver.ie.driver",".\\drivers\\IEDriverServer");
WebDriver driver = new InternetExplorerDriver();
}

--启动Edge浏览器:

1.控制台输入“ver”查看版本系统版本

2.根据系统版本下载对应的driver:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

3.启动浏览器,如图:

/*
*1、指定EdgeDriverServer.exe路径
*2、new一个EdgeDriver 对象,启动浏览器
*/
@Test
public void openEdgeTest(){
System.setProperty("webdriver.edge.driver",".\\drivers\\EdgeDriverServer");
WebDriver driver = new EdgeDriver();
}

五、Selenium关闭浏览器

1.关闭当前窗口

driver.close();

2.关闭所有窗口并退出

driver.quit();

public class PeixunDemo {
private WebDriver driver;
private String Url; /*
* 创建ChromeDriver对象
* 给Url赋值,启动谷歌浏览器
* 关闭谷歌浏览器页面
*/
@Test
public void beforeTest() {
driver= new ChromeDriver();
Url = "https://www.baidu.com";
driver.get(Url);
driver.close();
}
}

   

六、浏览器常用操作

driver.navigate().back();//向前

driver.navigate().forward();//向后

driver.navigate().refresh();//当前页刷新

driver.manage().window().maximize();//浏览器窗口最大化

String title = driver.getTitle();//返回当前页面的

TtileString currentUrl = driver.getCurrentUrl();//返回当前页面的url

getWindowHandle()//返回当前的浏览器的窗口句柄

getWindowHandles() //返回当前的浏览器的所有窗口句柄

getPageSource() //返回当前页面的源

Selenium ? 也要学...!的更多相关文章

  1. 「UI 测试自动化selenium」汇总

    <selenium 基础之java实现> selenium RC 环境配置 菜鸟学自动化测试(一)----selenium IDE 菜鸟学自动化测试(二)----selenium IDE ...

  2. 自动化测试基础篇--Selenium简单的163邮箱登录实例

    摘自https://www.cnblogs.com/sanzangTst/p/7472556.html 前面几篇内容一直讲解Selenium Python的基本使用方法.学习了什么是selenium: ...

  3. 小白学 Python 爬虫(42):春节去哪里玩(系列终篇)

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  4. 在做自动化测试之前你需要知道的,转自:http://www.cnblogs.com/fnng/p/3653793.html

    什么是自动化测? 做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多.一直想动笔写一篇文章分享自动化测试实践中的一些经验.终于决定花点时间来做这件事儿. 首先理清自动化测试的概念 ...

  5. 菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven)

    菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven) 2012-02-04 13:11 by 虫师, 11419 阅读, 5 评论, 收藏, 编辑 之前我就讲过一种方试来搭 ...

  6. 学习用java基于webMagic+selenium+phantomjs实现爬虫Demo爬取淘宝搜索页面

    由于业务需要,老大要我研究一下爬虫. 团队的技术栈以java为主,并且我的主语言是Java,研究时间不到一周.基于以上原因固放弃python,选择java为语言来进行开发.等之后有时间再尝试pytho ...

  7. 吾八哥学Selenium(四):操作下拉框select标签的方法

    我们在做web页面自动化测试的时候会经常遇到<select></select>标签的下拉框,那么在Python里如何实现去操作这种控件呢?今天就给大家分享一下这个玩法.为了让大 ...

  8. 吾八哥学Selenium(三):操作复选框checkbox/单选框radio的方法

    复选框checkbox和单选框radio是web网站里经常会使用到的两个控件,那么在web自动化测试的时候如何利用Selenium来操作这俩控件呢?今天我们就来简单入门练习一下! html测试页面代码 ...

  9. 吾八哥学Selenium(二):操作输入框/按钮的方法

    一个web页面一定少不了输入框或者按钮这两种元素,那么在Python里如何使用Selenium操作web页面里的输入框和按钮呢?本文带你简单入门. 本文采用了一个例子,就是利用Selenium打开百度 ...

随机推荐

  1. 关于File.separator 文件路径:wind与linux下路径问题 .

    最近有个在页面上传Excel文件至服务器指定目录并进行数据校验.最后入库及进行进一步处理的应用情境,我写好代码在模拟环境下测试,完全没问题:但客户试用的时候,却老是报告“No such file or ...

  2. sql server 的临时表和表变量

    临时表 本地临时表 适合开销昂贵   结果集是个非常小的集合 -- Local Temporary Tables IF OBJECT_ID('tempdb.dbo.#MyOrderTotalsByYe ...

  3. 四十四.Linux基本防护 用户切换与提权 SSH访问控制 SELinux安全 、SSH访问控制 SELinux安全

     1.Linux基本防护措施 与用户相关的配置文件 /etc/passwd   /etc/shadow  /etc/group /etc/gshadow  /etc/login.defs /etc/s ...

  4. 动态menu导航条以及treeview树

    1.menu表数据 2.在后台生成html内容后,前台利用nav-h.css生成menu导航条,利用Jquery的treeview插件生成menu树 前台coding: <!DOCTYPE ht ...

  5. [Luogu] 货车运输

    https://www.luogu.org/problemnew/show/1967 kruskal + Lca #include <iostream> #include <cstd ...

  6. CSP初赛复习

    初赛复习 初赛一定要过啊,否则付出的那么多都白搭了! while(1) ++csp.rp,++csp.luck,++csp.scores; 历史 2020年开始,除NOIP以外的NOI系列其他赛事(包 ...

  7. [报错解决] "MySQL server has gone away" 解决思路

    大概的4个思路 1.超时,超时的阀值有wait_timeout这个参数控制 2.连接被人为的kill 3.发送的SQL语句过大超过max_allowed_packet的大小. (操作的sql语句太长了 ...

  8. 控制层@Value注解取不到值

    @Value("${enable-upload-image}") private String enable; 如上所示,同样的代码,写在在业务层,运行时能取到正确的值,但在控制层 ...

  9. mapred-site.xml 基本配置参考

    说明:这是hadoop2.x版本的参数.下面的value都是参数默认值. 常用配置: ♥♥♥ .mapreduce.job.hdfs-servers value:${fs.defaultFS} 说明: ...

  10. cmake入门之内部构建

    https://www.cnblogs.com/coderfenghc/tag/cmake/ https://cmake.org/cmake/help/v3.16/guide/tutorial/ind ...