selenium学习路径

启蒙部分:

1. selenium 是什么?

Selenium是一个用于Web应用程序测试的工具,测试直接运行在浏览器中,如同用户在操作一样.

Selenium是一套工具,可以跨多个平台自动化浏览器.运行在许多浏览器和操作系统上.

2. selenium 能干什么?

代替手工, 进行频繁的回归测试, 重复性的测试, 快速生成海量的测试数据

轻松实现, 几乎无限次的测试用例迭代

可以支持, 敏捷和极限开发方法

更具需要, 定制的缺陷报告

3. selenium 怎么使用?

支持的语言, Java / Python / JavaScript / 等.

支持的系统, Windows / MAC / Linux

支持浏览器, IE / Chrome / Firefox / Safari / Opera / HtmlUnit / phantomjs /

Android (with Selendroid or appium) / iOS (with ios-driver or appium)

一句话, 就是可以进行自动化相关的测试, 可以进行单元测试,接口测试,功能测试.

4. selenium自动化测试的核心?

webdriver 是selenium进行GUI 功能测试的核心.

WebDriver用“驱动”(driver)去控制不同的浏览器.

WebDriver与“驱动”(driver)间用JSON协议进行通信.

WebDriver还有一个移动驱动叫做Appium,它允许测试代码在移动设备和平板上运行

本质上Selenium是一个生态系统,我们可以进行本地桌面,本地移动设备,跨平台测试,

我们不需要使用Windows,Mac或是Linux操作系统。

我们可以选择自己项目团队最合适的编程语言。

我们可以并行或远程执行我们的测试。

所有需要做的就是学习如何使用WebDriver。

5. WebDriver干什么?

WebDriver是一个自动化浏览器的工具.

WebDriver可是使浏览器自动化.

WebDriver可以为我们打开URL与渲染出的页面进行交互:

新建一个浏览器实例 , 在浏览器中打开一个URL , 点击页面上的链接 ,

在字段中输入信息, 在页面中执行JavaScript , 实现模拟人工进行业务功能操作.

WebDriver不是一个测试REST APIs、SOAP APIs或数据库的工具。

因为WebDriver本质上是一个库,

我们可以将其与其他库一起使用,调用其他API或者对数据库进行操作。

通常WebDriver与其他库一起使用,访问数据库检查结果,

使用REST库进行API调用,然后在WebDriver页面上检查结果.

使用库而不是框架提供了更多的灵活性来实现自动化.

最后: selenium自动化主要就是通过webdriver提供的一套API实现web功能的自动化测试.

理论部分一:

在使用selenium webdriver进行元素定位时,

通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.

WebDriver元素的常用8种定位方式:

driver.findElement(By.id("kw"));

driver.findElement(By.name("wd"));

driver.findElement(By.className("xxx"));

driver.findElement(By.tagName("input "));

driver.findElement(By.xpath("xxx"));

driver.findElement(By.linkText("xxx"));

driver.findElement(By.partialLinkText("xxx"));

driver.findElement(By.cssSelector("xxx"));

最后再总结一下,各种方式在选择的时候应该怎么选择:

id定位,精准简单高效/

name定位,className定位,tagName定位, 定位一组元素可以使用;

name定位,className定位,tagName定位, 定位单个元素, 需要检测是否唯一.

linkText定位, 即通过超文本链接上的文字信息来定位元素. 需要检测是否唯一.

partialLinkText定位, 当你不能准确知道超链接的完整文本信息, 可以使用部分文本信息进行定位.

xpath定位,cssSelector定位, 非常强大的元素查找方式,几乎可以定位到页面上的任意元素.

1. 当页面元素有id属性时,最好尽量用id来定位。如果没有可以选择其他定位方法。

2. xpath很强悍,但定位性能不是很好。少用但可以选择xpath或cssSelector。

3. 当要定位一组元素相同元素时,可以考虑用tagName或name。

4. 当有链接需要定位时,可以考虑linkText或partialLinkText方式。

绝对路径以单/号表示,而下面要讲的相对路径则以//表示,这个区别非常重要

一定要学好xpath定位的手写方式,

一定要学好xpath定位的手写方式,

一定要学好xpath定位的手写方式.

理论部分二:

运行Selenium 3所需的最低Java版本是Java 8+

不支持PhantomJS,建议使用无头Firefox或者而不是Chrome.

各种浏览器的启动完整代码

启动火狐浏览器示例代码:

public static void StartFireFoxByDefault(){

WebDriver driver;

System.out.println("start firefox browser...");

System.setProperty("webdriver.gecko.driver", "src\main\resources\driver\geckodriver55.exe");

driver = new FirefoxDriver();

driver.manage().window().maximize();

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

driver.get("http://www.baidu.com/");

System.out.println("start firefox browser succeed...");

}

启动谷歌浏览器示例代码:

public static void StartChromeByDefault(){

System.out.println("start firefox browser...");

System.setProperty("webdriver.chrome.driver", "\src\main\resources\driver\chromedriver63.exe");//驱动路径

WebDriver driver = new ChromeDriver();

driver.manage().window().maximize();

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

driver.get("http://www.baidu.com/");

System.out.println("start firefox browser succeed...");

}

测试准备阶段: 以windows系统,chrome浏览器,java语言来进行示例.

1. 下载需要使用到的webdriver文件, 在我的其他文章中有下载地址

2. 下载JDK1.8+, 我使用的selenium3.X版本, 最低支持JDK1.8版本.

3. 配置jdk的环境变量,

系统环境变量JAVA_HOME:D:\Java\jdk1.8.0_05(写自己安装的jdk地址)

系统环境变量Path:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

系统变量CLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

检验是否配置成功 运行cmd 输入 java -version (java 和 -version 之间有空格)

4. 下载安装eclipse, 从eclipse官网下载,https://www.eclipse.org/downloads/

5. 下载安装maven,从apache官网下载,https://maven.apache.org/

配置 maven 环境变量:

系统变量:MAVEN_HOME = F:\apache-maven-3.5.0;

系统变量path追加: %MAVEN_HOME%\bin;

打开 cmd,在里面敲:mvn -version

6. eclipse中配置maven,

windows-->preference-->maven--->installations--->add--->maven安装目录-->勾选--apply.

7. 如果安装的是Intel IDEA, 自带maven, 无需安装.

8. selenium等相关的依赖的jar包, 都可在maven repository 仓库中,搜索添加到pom.xml文件中.

实战阶段

你可能感兴趣的:(selenium学习路径)