一、简介

Selenium是UI自动化的一个框架。

Selenium1.0时代就是用js注入技术与浏览器交互。

Selenium WebDriver就是调用浏览器原生的API来实现的操作。他是Client/server模式的。意思就是说我们写的命令经过Selenium的Server端捕获,然后翻译成浏览器可以执行的操作,浏览器执行了之后的返回结果经过Server端翻译返回给客户端,这里的客户端其实就是我们写的代码。

Selenium3.0,支持Edge浏览器,支持IE9以上等等,现在我们还是用的2.0。

支持多种操作系统windows、linux、os,支持多种浏览器火狐、IE、谷歌、Sarif等等。

Java是Oracle公司的。

二、用法简介

1、浏览器的操作

可以通过driver.navegate对浏览器进行操作,比如back回退、forword前进、to到某一个url地址。

还可以直接操作driver.quit退出浏览器,driver.close关闭浏览器。

2、元素定位

元素定位主要有7种。id、name、class、tag、linktext、css、xpath。经常用的也就是id和css。css如果太复杂的话我们可以通过浏览器F12查看元素定位,得到css路径。

我们得到元素了之后就可以对元素进行操作,比如sendkeys、gettext、getattribute等等。

还可以对页面进行截图,这也是经常用的方法,当断言失败或者遇到异常的时候就截图getScreenShot操作。

3、Actions

就是对浏览器进行的操作,比如鼠标、键盘的操作。鼠标操作有click、doubleclick、movetoelement移动、dtag拖拽等等操作。键盘可以对输入框输入键盘上的key以模拟键盘操作。

4、JS

有的时候我们会去执行javascript脚本。把driver转成JavascriptExcecutor,然后通过这个对象执行ExcecuteScript脚本代码。还可以对js方法传参数,比如我们通过selenium框架得到了某个元素,可以通过arguments[0]这种方式操作元素,还可以得到方法的返回值,返回值通过string接受,然后再转。

5、Switch

当我们打开了几个页面或者页面有iframe或者操作alert的时候需要先switch到相关的页面或者iframe上才能操作元素。

当我们操作alert的时候先switch.alert到弹出框上,然后再通过方法accept或者dismiss点击确定或者取消操作。

6、等待

等待是因为有的时候执行脚本的时候,元素还没有加载出来,我们就通过等待等到元素加载出来在操作。等待分为3种:

1)强制等待,就是通过java的Thread.Sleep等待。

2)隐士等待,就是通过对driver的设置,设置了之后,整个通过driver操作元素都会等待。

driver.manage().timeouts().implicitlyWait获取元素的时间设置;还有pageLoadTimeout页面加载的时间设置;setScriptTime脚本执行时间的设置。

3)显示等待,上面两种等待都有弊端,我们一般都用显示等待,就是需要等待的地方才执行等待的操作。WebDriverWait对象,wait.until传入要找元素的代码,如果超时还没有找到异常,如果找到了继续执行。

WebDriverWait wait = new WebDriverWait(driver, 10);

WebElement rElement = wait.until(new ExpectedCondition<WebElement>() {

public WebElement apply(WebDriver d) {

return d.findElement(By.cssSelector("input[type='radio'][name='company']:checked"));

}

});

7、断言

Selenium提供了Assert、Verify断言。Assert断言失败会停止执行;Verify断言失败继续执行,但是会记录日志。

Selenium-简介的更多相关文章

  1. Selenium简介(二)--基于CORE/IDE的简单应用

    参考  http://blog.csdn.net/iamqa/article/details/4398240 Selenium简介(一)--总体介绍  http://blog.csdn.net/iam ...

  2. 《零成本实现Web自动化测试--基于Selenium》第二章 Selenium简介和基础

    第一部分 Selenium简介 1.Selenium 组建 1.1 Selenium-IDE Selenium-IDC是开发Selenium测试案例的集成开发环境.它像FireFox插件一样的工作,支 ...

  3. Robot Framework和Selenium简介

    1.1  RF简介 Robot Framework是一款python编写的功能自动化测试框架.具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行.主要用于 ...

  4. 自动化测试基础篇--Selenium简介

    摘自https://www.cnblogs.com/sanzangTst/p/7452636.html 一.软件开发的一般流程 二.什么叫软件测试? 软件测试(英语:Software Testing) ...

  5. 引用 自动化测试基础篇--Selenium简介

    原文链接:http://www.cnblogs.com/sanzangTst/p/7452636.html 鸣谢参藏法师 一.软件开发的一般流程 二.什么叫软件测试? 软件测试(英语:Software ...

  6. 跟浩哥学自动化测试Selenium -- Selenium简介 (1)

    Selenium 简介 Selenium 是一款开源的web自动化测试工具,用来模拟对浏览器的操作(主要是对页面元素的操作),简单来讲,其实就是一个jar包.Selenium早期的版本比如1.0市场占 ...

  7. python + selenium - selenium简介

    1. 产品简介 selenium 是 基于 web网页的UI自动化测试框架. 1)支持多浏览器操作:ie.chrome.firefox.edge.safaria等 2)跨平台:windows.linu ...

  8. selenium 简介 及浏览器配置

    简介: Selenium是一款基于web应用程序的开源测试工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.Selenium是一个自动化的web应用功能测试工具. Seleniu ...

  9. selenium简介

    Selenium是一个开源的和便携式的自动化软件测试工具,用于测试Web应用程序有能力在不同的浏览器和操作系统运行.Selenium真的不是一个单一的工具,而是一套工具,帮助测试者更有效地基于Web的 ...

  10. 【转】selenium简介及安装方法

    转自:http://www.cnblogs.com/fnng/p/3157639.html 1. selenium 介绍 selenium 是一个web 的自动化测试工具,不少学习功能自动化的同学开始 ...

随机推荐

  1. java并发api总结

    开发十年,就只剩下这套架构体系了! >>>   1.java.util.concurrent包 1.1 Executors Executor:接口,仅有一个方法为execute(Ru ...

  2. kvm 虚拟化概述及 virt-manager 安装虚拟机

    一.KVM定义 基于内核的虚拟机(英语:Kernel-based Virtual Machine,简称KVM),是一种用于Linux内核中的虚拟化基础设施. KVM眼下支持Intel VT及AMD-V ...

  3. JAVA生成二维码并转化为二进制在页面展示

    引用jar包: zxing的core包,下载路径可参考:http://download.csdn.net/detail/sxg0205/9461106 java代码: 引用包: import java ...

  4. PatentTips -- 一种在CoAP网络中注册的方法及装置

    技术领域 [0001] 本发明涉及一种在CoAP网络中注册的方法及装置,属于网络通信技术领域. 背景技术 [0002] (Internet of Things,物联网)作为新一代的信息技术,越来越受到 ...

  5. 历届图灵奖 (Turing award)得奖名单

    历届图灵奖 (Turing award)得奖名单 一.总结 一句话总结:各个方面都有. 二.历届图灵奖 (Turing award)得奖名单 Turing奖最早设立于1966年,是美国计算机协会在计算 ...

  6. php超实用正则表达式有哪些

    php超实用正则表达式有哪些 一.总结 一句话总结: 二.php几个超实用正则表达式 对于开发人员来说,正则表达式是一个非常有用的功能,它提供了 查找,匹配,替换 句子,单词,或者其他格式的字符串.这 ...

  7. protobuf中会严重影响时间和空间损耗的地方

    http://blog.chinaunix.net/uid-26922071-id-3723751.html 当前项目中普遍用到GOOGLE 的一个开源大作PROTOBUF,把它作为网络应用层面的传输 ...

  8. 【a401】直线的交点数

    Time Limit: 1 second Memory Limit: 32 MB [问题描述] 平面上有n条直线,且无三线共点,问这些直线能有多少种不同的交点数. [输入格式] n(n≤20) [输出 ...

  9. @AspectJ support (good)

    AspectJ类型匹配的通配符:*:匹配任何数量字符:..:匹配任何数量字符的重复,如在类型模式中匹配任何数量子包:而在方法参数模式中匹配任何数量参数.+:匹配指定类型的子类型:仅能作为后缀放在类型模 ...

  10. 一个2013届毕业生(踏上IT行业)的迷茫(4)

    等了大概三个月,终于到9月份了,以前没有出过远门,这次要去西安上学,一个人父母还是不放心,带了几件衣服就和父亲匆匆去坐火车,这一路有多少个第一次啊,第一次和父亲一块坐车.第一次坐火车.第一次出县城.第 ...