Selenium ? 也要学...!
一、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 ? 也要学...!的更多相关文章
- 「UI 测试自动化selenium」汇总
		
<selenium 基础之java实现> selenium RC 环境配置 菜鸟学自动化测试(一)----selenium IDE 菜鸟学自动化测试(二)----selenium IDE ...
 - 自动化测试基础篇--Selenium简单的163邮箱登录实例
		
摘自https://www.cnblogs.com/sanzangTst/p/7472556.html 前面几篇内容一直讲解Selenium Python的基本使用方法.学习了什么是selenium: ...
 - 小白学 Python 爬虫(42):春节去哪里玩(系列终篇)
		
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
 - 在做自动化测试之前你需要知道的,转自:http://www.cnblogs.com/fnng/p/3653793.html
		
什么是自动化测? 做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多.一直想动笔写一篇文章分享自动化测试实践中的一些经验.终于决定花点时间来做这件事儿. 首先理清自动化测试的概念 ...
 - 菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven)
		
菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven) 2012-02-04 13:11 by 虫师, 11419 阅读, 5 评论, 收藏, 编辑 之前我就讲过一种方试来搭 ...
 - 学习用java基于webMagic+selenium+phantomjs实现爬虫Demo爬取淘宝搜索页面
		
由于业务需要,老大要我研究一下爬虫. 团队的技术栈以java为主,并且我的主语言是Java,研究时间不到一周.基于以上原因固放弃python,选择java为语言来进行开发.等之后有时间再尝试pytho ...
 - 吾八哥学Selenium(四):操作下拉框select标签的方法
		
我们在做web页面自动化测试的时候会经常遇到<select></select>标签的下拉框,那么在Python里如何实现去操作这种控件呢?今天就给大家分享一下这个玩法.为了让大 ...
 - 吾八哥学Selenium(三):操作复选框checkbox/单选框radio的方法
		
复选框checkbox和单选框radio是web网站里经常会使用到的两个控件,那么在web自动化测试的时候如何利用Selenium来操作这俩控件呢?今天我们就来简单入门练习一下! html测试页面代码 ...
 - 吾八哥学Selenium(二):操作输入框/按钮的方法
		
一个web页面一定少不了输入框或者按钮这两种元素,那么在Python里如何使用Selenium操作web页面里的输入框和按钮呢?本文带你简单入门. 本文采用了一个例子,就是利用Selenium打开百度 ...
 
随机推荐
- jquery统计输入文字的个数并对其进行判断
			
<textarea placeholder="该产品满足你的期待吗?说说你的使用心得,分享给 同样看中的他们吧"></textarea> <span ...
 - 将 Django 应用程序部署到生产服务器
			
原文出自: http://www.ibm.com/developerworks/cn/opensource/os-django/ 比较有启发性质的一篇文章,会避免很多弯路 Django 是一个基于 P ...
 - spark读文件写mysql(java版)
			
package org.langtong.sparkdemo; import com.fasterxml.jackson.databind.ObjectMapper; import org.apach ...
 - Ftp客户端需要TSL功能的文件上传
			
Ftp客户端需要TSL功能 1.由于最近做了一个项目,需要把打包的文件传输到对方的FTP服务器上,但是用普通的java连接ftp客户端总是连接不上去,对方却说ftp客户端需要开通TSL功能. 直接上代 ...
 - learning scala regular expression patterns
			
package com.aura.scala.day01 import scala.util.matching.Regex object regularExpressionPatterns { def ...
 - (WAWAWAWAWAWA) BZOJ 1858: [Scoi2010]序列操作
			
二次联通门 : BZOJ 1858: [Scoi2010]序列操作 /* BZOJ 1858: [Scoi2010]序列操作 已经... 没有什么好怕的的了... 16K的代码... 调个MMP啊.. ...
 - 均匀量化(lena图)
			
#include<stdio.h> #include<math.h> #define ROW 512 #define COL 512 typedef unsigned char ...
 - Spring Cloud Gateway(八):其它路由谓词工厂
			
本文基于 spring cloud gateway 2.0.1 6.基于Cookie的谓词工厂 CookieRoutePredicateFactory 是 Cookie 类型的路由断言工厂,接收两个参 ...
 - AGC022E Median Replace
			
题意 给出一个长度为奇数\(n\)的残缺01串,问有多少种补全方法,每次将连续三个位替换为它们的中位数后,能有一种方案使它变为1. \(n \le 3*10^5\) 思路 左边表示栈顶. 将操作简化为 ...
 - hive on tez
			
hive运行模式 hive on mapreduce 离线计算(默认) hive on tez YARN之上支持DAG作业的计算框架 hive on spark 内存计算 hive on tez T ...