被测产品是B/S 结构,那么推荐selenium

selenium 并不是单纯的一个工具,他是一组工具的集合

1、 selenium IDE 是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能)(快速的创建bug重现脚本,在测试人员的测试过程中,发现了bug之后可以通过IDE将重现的步骤录制下来,以帮助开发人员更容易的重现bug。

2、Selenium Grid是一种自动化的测试辅助工具)

(1)并行执行

(2)通过一个主机统一控制用例在不同环境、不同浏览器下运行。

(3)灵活添加变动测试机

3、selenium RC 是selenium 家族的核心工具

通过selenium RC 的服务器作为代理服务器去访问应用从而达到测试的目的。

selenium 2.0 = selenium 1.0 + WebDriver (WebDriver 是selenium RC 的替代品,WebDriver通过原生浏览器支持或者浏览器扩展直接控制浏览器)

基础知识点

一、selenium元素定位(8种定位元素的方法)

定位一组元素的方法和单个元素方法类似,唯一的区别是在单词 element 后面多加了一个 s

· find_element_by_id()

· find_element_by_name()

· find_element_by_class_name()

· find_element_by_tag_name()

· find_element_by_link_text()

· find_element_by_partial_link_text():其实就是链接中的部分内容,比如整体链接叫做 hao123,我们可以只通过 hao 或者 123

· find_element_by_xpath()

· find_element_by_css_selector()

✓ 使用的时候就在前面加个 driver.find_element_by_id() 就可以跳动这个方法

e.g.practice_basic/webdriver_functions

二、控制浏览器操作

· 控制浏览器窗口大小(set_window_size()方法来设置浏览器的大小)。driver.set_window_size() e.g.practice_basic/set_window_size

· 控制浏览器后退、前进(在使用浏览器浏览网页时,浏览器提供了后退和前进按钮,可以方便地在浏览过的网页之间切换,WebDriver也提供了对应的back()和forward()方法来模拟后退和前进按钮)

driver.back()        ;      driver.forward() eg: practice_basic/back_forward

  • 刷新当前页面  driver.refresh()

三、Webdriver 常用方法 e.g. webdriver_common_functions

  • 点击和输入 clear() :清除文本 ;send_keys(value):模拟按键输入;click() 单击元素
  • submit()方法用于提交表单。 例如, 在搜索框输入关键字之后的“回车” 操作, 就可以通过该方法模拟。
  • size: 返回元素尺寸;text:获取元素文本;get_attribbute(name):获取属性值;is_displayed: 设置元素是否用户可见

四、鼠标事件 e.g. webdriver_ActionChains  :提供了鼠标操作的常用方法

from selenium.webdriver.common.action_chains import ActionChains 导入 ActionChains 方法

  • perform() : 执行所有 ActionChains 中存储的行为
  • context_click(): 右击
  • double_click(): 双击
  • drag_and_drop() :拖动
  • move_to_element(): 鼠标悬停

五、Keys()类提供了键盘上几乎所有按键的方法。 前面了解到, send_keys()方法可以用来模拟键盘输入, 除此 之外, 我们还可以用它来输入键盘上的按键, 甚至是组合键, 如 Ctrl+A、 Ctrl+C 等。e.g. webdriver_Keys

from selenium.webdriver.common.keys import Keys

六、最后一步需要拿实际结果与预期进行比较。这个比较的称之为断言。我们通常可以通过获取title 、URL和text等信息进行断言。貌似这个过程就是比较,前后比较 e.g. practice_basic/get assertion information

七、设置元素等待:显式等待和隐式等待

显式等待

使WebdDriver等待某个条件成立时继续执行,否则在达到最大时长时抛出超时异常(TimeoutException)

WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)

driver:浏览器驱动

timeout:最长等待的时间,默认以秒为单位

poll_frequency:检测间隔时间,默认为0.5s

ignored_exceptions:超时后的异常信息,默认情况下抛 NoSuchElementException异常

隐式等待

WebDriver 提供了implicitly_wait() 方法来实现隐式等待,默认设置为0。

八、多表单切换

因为表单中的元素,WebDriver 无法直接定位,需要用 switch_to.frame()方法将当前定位的主体切换为 frame/iframe 表单的内嵌页面,就像我们平时要在表单中输入用户名和密码都需要用鼠标点一下 e.g.  practice_basic/switch_to_frame

九、警告框处理

switch_to_alert() e.g. practice_basic/switch_to.alert

十、下拉框选择

WeDriver 提供了 Select 类来处理下拉框,Select 类用于定位 select 标签。

select_by_value() 定位下接选项中的 value 值  e.g. practice_basic/select

十一、文件上传

对于通过input标签实现的上传功能,可以将其看作是一个输入框,即通过 send_keys() 指定本地文件路径的方式实现文件上传

十二、 cookie 操作(储存在用户本地终端上的数据,通过)

重点

实践:开源中国

自动化测试 https://www.oschina.net/p/testmp

学习Robot Framework https://www.cnblogs.com/yufeihlf/p/5949984.html

学习自动化测试乙醇网站:http://www.testclass.net

国内用的比较多的:JUnit或者TestNG 是java 用的框架

Selenium 基础知识的更多相关文章

  1. Selenium基础知识

    本人博客文章网址:https://www.peretang.com/basic-knowledge-of-selenium/ 什么是Selenium Selenium是一个自动化测试工具 是一组不同的 ...

  2. Selenium基础知识(十)截屏

    自动化测试过程中,经常会用截图的方式,更直观的显示展示错误信息:selenium截图的三种方式: driver.get_screenshot_as_file(r'd:\selenium.png') # ...

  3. Selenium基础知识(九)验证码

    关于Selenium处理验证码总结下: 1.去掉验证码(这个为了测试,去掉可能性不大) 2.万能验证码(让开发给做一个万能验证码,可能性也不大) 3.OCR光学识别,python包Python-tes ...

  4. Selenium基础知识(八)文本域处理textarea

    textarea文本域selenium有时处理不了,但是我们可以采用迂回,解决这个问题 那么,我们用到了execute_script()方法来调用javascript来解决这个问题 这其中涉及DOM, ...

  5. Selenium基础知识(七)弹出框处理

    使用switch_to.alert方法来处理弹页面弹出的警告框 页面常见警告框种类:alert/confirm 确认框/prompt switch_to.alert().accept() switch ...

  6. Selenium基础知识(六)下拉列表定位

    1.下拉列表定位 要选择下拉列表中的元素,要先定位到,下拉列表元素,然后可以通过xpath去点击,表内内容 例如,百度搜索-->百度设置-->搜索设置-->选择下拉列表框内" ...

  7. Selenium基础知识(四)表单切换

    在测试过程中,经常会碰到frame和iframe,嵌套等情况 这种情况下直接通过id,name等等是无法定位到的 好在selenium替我们想到了这个问题switch_to方法解决问题 switch_ ...

  8. Selenium基础知识(三)元素判断

    一.由于有些页面加载完后,某些元素还没有加载,这样就会导致异常,脚本稳定性变差 为了解决这个问题,selenium提供了WebDriverWait以及implicitly_wait()等待 WebDr ...

  9. Selenium基础知识(二)鼠标操作

    一.鼠标操作 这个需要使用webdriver下的ActionChains类,这个类是操作鼠标操作的: from selenium.webdriver import ActionChains 鼠标操作可 ...

随机推荐

  1. JavaScript自定义求和函数

    我爱撸码,撸码使我感到快乐!大家好,我是Counter,当看到这个标题到时候是不是感觉很简单,千万不要大意哦,你说0.1 + 0.2 = 0.3 ?有时候计算机并不是我们所说绝对精确,这个时候就要我们 ...

  2. ORM模型

    一.创建及映射(orm_intro_demo文件) 在项目新建App下的models.py文件下新建ORM模型: from django.db import models #如果要将一个普通的类变成一 ...

  3. selenium+Java使用内容记录(全)

    1.模拟键盘操作,使用enter键 2.等待几秒 3.浏览器最大化 4.获取cookie,删除cookie 5.模拟鼠标 6.selenium+java 识别验证码(数字+字母组合) 7.seleni ...

  4. 非递归遍历N-ary树Java实现

    2019-03-25 14:10:51 非递归遍历二叉树的Java版本实现之前已经进行了总结,这次做的是非递归遍历多叉树的Java版本实现. 在非递归遍历二叉树的问题中我个人比较推荐的是使用双whil ...

  5. C#中Equals和= =(等于号)的比较)

    C#中Equals和= =(等于号)的比较) 相信很多人都搞不清Equals和 = =的区别,只是零星的懂一点,现在就让我带大家来进行一些剖析 一.           值类型的比较 对于值类型来说  ...

  6. android -------- 压缩图片文件工具类

    项目中常常遇到文件压缩问题,上传文件大小限制 今天简单的分享一点干货,文件压缩,图片压缩,压缩Bitmap 主要通过尺寸压缩和质量压缩,以达到清晰度最优 效果图 源码地址: https://githu ...

  7. 『TensorFlow』网络操作API_下

    一.优化器基类介绍 标注一点,优化器中的学习率可以是tensor,这意味着它可以feed, learning_rate: A Tensor or a floating point value. 正常使 ...

  8. Ubuntu安装vsftpd并通过xftp连接

    1.在ubuntu中安装xftp: sudo apt-get update sudo apt-get install vsftpd sudo service vsftpd restart 2.防火墙添 ...

  9. coursera-斯坦福-机器学习-吴恩达-笔记week2

    1 多元线性回归 1.1 假设函数 多元线性回归是指有多个特征特征变量的情况.此时我们修改假设函数hθ(x)=θ0+θ1∗x为hθ(x)=θ0+θ1x1+θ2x2+⋯+θnxn.设x0=1,x为特征向 ...

  10. Spring Boot 2.0尝鲜-动态 Banner

    配置依赖 使用 Spring Boot 2.0 首先需要将项目依赖包替换为刚刚发布的 2.0 RELEASE,现在网站https://start.spring.io/也将 Spring Boot 2. ...