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类返回的元素句柄来定位元素.

<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">

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;<path中追加>

系统变量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文件中.

实战阶段

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352

推荐阅读更多精彩内容