当前位置: 首页 > 编程日记 > 正文

「UI 测试自动化selenium」汇总

《selenium 基础之java实现》

selenium RC 环境配置

菜鸟学自动化测试(一)----selenium IDE

菜鸟学自动化测试(二)----selenium IDE 功能扩展

菜鸟学自动化测试(三)----selenium 命令

菜鸟学自动化测试(四)----selenium 命令之验证页面元素

菜鸟学自动化测试(五)-----selenium命令之定位页面元素

菜鸟学自动化测试(六)----selenium 命令之文字范本匹配

菜鸟学自动化测试(七)----selenium RC 工作原理

菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven)

菜鸟学自动化测试(九)----WebDirver

=========================================================================

在拾功能自动化距离上次selenium的学习刚好一年左右的时光,过去的一年时光里,一直在围绕 性能测试 学东西,一方面是自己学到性能调优是个瓶颈,另一方面专职性能的需求量不大(至少在我跳槽时是这种感受),惭愧,再次的跳槽不能如愿的去做性能。

新工作的氛围也算喜欢,就工作本身来说没什么挑战,因为产品部分用python开发,所以,浅学了一下。

一直在摸索能否将目前的产品自动化起来,对自己也是一种挑战和提高。放弃了久之不用的java ,改换 python 。之前的系列也只算个入门,后面就接着摸索下去。

下面会用  selenium + webdriver + python 实现

关系:

selenium 自动化测试工具 :selnium 1.0 包括:selenium RC 、selenium IDE 、selenium GRID、selenium CORE

webdriver  google的自动化测试框架(或者说是套规范API)

webdriver 与seleinum  各有优点,两个团队都认为合并会更牛逼,于是:

selenium 2.0 = selenium RC + webdriver

selenium 可以使用多种语言实现:C# , java , python , ruby ....

环境搭建:

selenium + python自动化测试环境搭建

译:selenium webdriver (python)

----------------轻松自动化系列目录-----------

轻松自动化---selenium-webdriver(python) (一)

开始我们的第一个脚本:

  • 熟悉selenium python 代码样式
  • time.sleep()  添加休眠时间
  • print   打印输出信息

轻松自动化---selenium-webdriver(python) (二)

  • 打印URL
  • 将浏览器最大化
  • 设置浏览器固定宽、高
  • 操控浏览器前进、后退

轻松自动化---selenium-webdriver(python) (三)

* 简单对象定位:

  • · id
  • · name
  • · class name
  • · link text
  • · partial link text
  • · tag name
  • · xpath
  • · css selector

轻松自动化---selenium-webdriver(python) (四)

  • 定位一组元素

轻松自动化---selenium-webdriver(python) (五)

  • 层级定位

轻松自动化---selenium-webdriver(python) (六)

操作对象:

  • · click 点击对象
  • · send_keys 在对象上模拟按键输入
  • · clear 清除对象的内容,如果可以的话

WebElement  另一些常用方法:

  • · text  获取该元素的文本
  • · submit  提交表单
  • · get_attribute  获得属性值

轻松自动化---selenium-webdriver(python) (七)

多层框架或窗口的定位:

  • switch_to_frame()
  • switch_to_window()

智能等待:

  • implicitly_wait()

轻松自动化---selenium-webdriver(python) (八)

调用js方法

  • execute_script(script, *args)

轻松自动化---selenium-webdriver(python) (九)

  • 上传文件

轻松自动化---selenium-webdriver(python) (十)

  • 处理下拉框
  • switch_to_alert()
  • accept()

轻松自动化---selenium-webdriver(python) (十一)

  • 控制滚动条到底部

轻松自动化---selenium-webdriver(python) (十二)

  • l 键盘按键用法
  • l 键盘组合键用法
  • l send_keys() 输入中文运行报错问题

selenium-webdriver(python) (十三) -- cookie处理

  • driver.get_cookies() 获得cookie信息
  • add_cookie(cookie_dict)  向cookie添加会话信息
  • delete_cookie(name)   删除特定(部分)的cookie
  • delete_all_cookies()    删除所有cookie

selenium-webdriver(python) (十四) -- webdriver原理

  • webdriver 原理分析

selenium-webdriver(python) (十五) -- 鼠标事件

  • context_click()  右击
  • double_click()   双击
  • drag_and_drop()  拖动

selenium-webdriver(python) (十六) --unittest 框架

  • 浅析unittest测试框架

最新,《selenium 2.0 (python) 第一版》  PDF版本即将推出,内容更完善,顺序更合理。敬请期待。。。

独立blog:

http://www.testpub.cn/ -->(最新公开课视频)

转载于:https://www.cnblogs.com/webRobot/p/5207725.html

相关文章:

Docker初学5:下载安装可视化图形工具Portainer

下载安装可视化图形工具Portainer # 搜索Portainer [rootiZh40ti53pk77iZ ~]# docker search portainer NAME DESCRIPTION STARS OFFICIAL AUTOMATED portainer/portainer This Repo is …

dropbear编译安装及服务脚本编写

编译安装下载dropbear、并解压# wget http://matt.ucc.asn.au/dropbear/releases/dropbear-2015.67.tar.bz2 # tar xvf dropbear-2015.67.tar.bz2 # cd dropbear-2015.67 # ./configure --prefix/usr/local/dropbear --sysconfdir/etc/dropbear编译安装dropbear,要…

系统动力学_System Dynamics

1 系统动力学概述 系统动力学的创建标志是Jay.W.Forrester教授的Industrial Dynomics专著于1961年的出版。 1.1 系统动力学的基本概念(Basic Concept of System Dynamics) (1)事件:是指一般在固定的时间或地点上发生…

完整的Python 3和树莓Pi大师课 Complete Python 3 and Raspberry Pi Masterclass

在一门课程中学习Python 3基础、高级Python、科学Python、树莓Pi和硬件项目 你会学到: Python 3基础 Python 3高级概念 树莓皮的设置和使用 科学巨蟒生态系统 NumPy和Matplotlib基础 图像处理 机器学习和数据科学基础 使用MySQL、Excel、明文和CSV Python发行版 树莓皮的硬件及…

JVM学习1:JVM和Java体系结构

JVM和Java体系结构 计算机本身是不识别高级语言的,这个大家应该都知道,我们的Java、C、Python这些代码都要执行下面的一个流程 随着Java7发布以后,Java虚拟机可以根据JSR-292标准实现在Java虚拟机平台上运行非Java的语言编写的程序&#xff…

BitMap 内存使用优化

在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。所以,对于图片的内存优化,是And…

js中字符串转化为进制以及进制转化

利用javascript进行进制转换的方法 今天在做网站时用到了进制的转换,于是在网上搜索,发现可以直接利用javascript的toString()方法和parseInt()方法进行十进制和其他进制之间的转换,这里对他们的用法进行一下整理。 toString()方法&#x…

QGC地面站参数调节

校准: 1.选择机架:一般用DJI Flame Wheel F450机架,选择之后点击“应用并重启”; 2.传感器校准:无人机会重新连接地面站,依次校准“磁罗盘”、“陀螺仪”,“加速度计”、“地平线”;…

Object类解析

声明:该Java常用类分析基于JDK1.8 Object类 概述 官方介绍: 翻译内容: Object类是类层次结构的根。每个类都有Object作为父类。所有对象,包括数组,都实现这个类的方法。 其中class hierarchy这个词组翻译为类的继承…

用Python构建网页抓取器

借助使用Python构建的尖端网页抓取技术,启动您的大数据项目 Scrape the Planet! Building Web Scrapers with Python 你会学到什么 如何理论化和开发用于数据分析和研究的网页抓取器和蜘蛛 什么是刮刀和蜘蛛? 刮刀和蜘蛛有什么区别? 刮刀和蜘…

Apache JMeter2.13 实战

安装目录下 设置浏览器代理127.0.0.1 8080,以chrome为例 开始录制脚本,进入应用点击相应的功能,可以捕获到如下地址 去除无用地址,保留需要测试的地址 注:上图编号列表中11为获取cookie请求,不能删除&#…

大数据系列6:HBase – 基于Hadoop的分布式数据库

2019独角兽企业重金招聘Python工程师标准>>> wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz tar -xzvf zookeeper-3.4.5.tar.gz cd zookeeper-3.4.5 cp conf/zoo_sample.cfg conf/zoo.cfg vi conf/zoo.cfg 修改&…

下载源码、编译

源码官网:https://github.com/PX4/Firmware/ 在Branch:master中选择第二个Tags下面就是源码版本,可以选择下载最新版本。 下载指令 git clone -b v1.11.0 https://github.com/PX4/Firmware.git --recursive 根据下载的版本更换版本号,这里下…

CSS、JavaScript、PHP和Python编程合二为一

CSS, JavaScript,PHP And Python Programming All in One Course 在一门课程中学习Javascript、PHP和Python编程语言的CSS 你会学到: CSS和JavaScript概念介绍,PHP编程语言和Python编程语言 编写CSS脚本和理解概念 CSS样式、CSS 2D变换、CSS三维变换入门 Javascrip…

maven工程出现java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener...

经过百度,发现网上很多方法虽然描述的错误和我的一样,但是发现都不适我自身的这种情况.后来我自己解决了.解决方法如下: 接着:update一下工程 最后:就可以直接在这里run一下了. 转载于:https://www.cnblogs.com/fengxuanyuan/p/5210910.html

操作系统学习1:操作系统概述

操作系统概述 什么是操作系统? 操作系统(Operating System,简称OS)是一个系统软件,它管理计算机的软硬件资源,并为计算机程序提供服务。 操作系统的五大功能 文件管理 文件管理包括:存储空间…

1578: [Usaco2009 Feb]Stock Market 股票市场

1578: [Usaco2009 Feb]Stock Market 股票市场 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 414 Solved: 199[Submit][Status][Discuss]Description 尽管奶牛们天生谨慎,她们仍然在住房抵押信贷市场中受到打击,现在她们开始着手于股市。 Bessie很有…

代码部分分区域突破

代码结构 board部分 在这里主要是用到了里面的px4部分,里面包含各种编译版本,主要现在用的就是fmu-v5版本,打开后里面需要在default.cmake里面找到MODULES,在下面添加自己写的文件名字。 这里是有四个串口,如果设备想要获取信息…

用Python和项目进行机器学习(初学者) Machine Learning A-Z with Python with Project (Beginner)

初学者用Python完成机器学习课程 你会学到: Python上的主机器学习 进行有力的分析 做出准确的预测 制作健壮的机器学习模型 将机器学习用于个人目的 建立一支强大的机器学习模型大军,并知道如何将它们结合起来解决任何问题 使用K-均值聚类、支持向量机(SVM)、KNN、…

操作系统学习2:操作系统的发展和概览

操作系统的发展和概览 手工阶段(电子管时代) 特点: 用户独占全机 用户独占计算机所有资源,资源利用率低CPU等待用户 计算前,手工装入纸带或卡片;计算完成后,手工卸取纸带或卡片;C…

java内存数据管理

准确的说应该是java8以前的内存管理方式 区别在永久代(方法区)上 public class RamManager {//1.a存储于永久代public static int a 1;private String str;private int x;private AA aaa;  // method_1方法位于栈中// temp1保存的是引用地址,在栈中public void me…

职责链模式(Chain of Responsibility)(对象行为型)

1.概述 你去政府部门求人办事过吗?有时候你会遇到过官员踢球推责,你的问题在我这里能解决就解决,不能解决就推卸给另外个一个部门(对象)。至于到底谁来解决这个问题呢?政府部门就是为了可以避免屁民的请求与…

Ubuntu使用QCustomPlot简介

参考网址 https://blog.csdn.net/zyc_csdn/article/details/78840376 显示实时数据 https://blog.csdn.net/qq_28877125/article/details/102948574?ops_request_misc&request_id&biz_id102&utm_termQcustomPlot%E4%BD%BF%E7%94%A8%E5%AE%9E%E6%97%B6%E5%8A%A8%E6…

Python入门基础教程 Working with Python – Introductory Level

学会像计算机科学家一样用世界上最流行的编程语言之一思考 你会学到: 学习Python的基础知识,Python是当今最流行的编程语言之一 通过编写一个基于文本的冒险游戏来学习Python语言的语法 了解面向对象编程和过程编程的区别 学会像计算机科学家一样思考:做决定、循环…

MyBatis复习笔记5:MyBatis代码生成器

前言:做过几个项目之后深感代码生成器的便捷,有了它我们可以少写许多重复的、基础的代码,如基本的增删改查的代码,我们可以交给代码生成器生成,而我们只需要专注于业务逻辑上的代码即可。 MyBatis Generator MyBatis官…

QT报错“qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method”

出现错误找这里:https://blog.csdn.net/u010168781/article/details/85632637

数据科学Python训练营课程:从初级到高级 Python for Data Science Bootcamp Course:Beginner to Advanced

通过代码实现、示例等,掌握您需要了解的关于Python、Pandas和Numpy的一切! 你会学到什么 通过代码实现、示例等,掌握您需要了解的关于Python、Pandas和Numpy的一切! 学习高级Python模块和复杂功能,如Python装饰器、生…

MyBatis复习笔记6:MyBatis缓存机制

MyBatis缓存机制 MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制。缓存可以极大的提升查询效率。MyBatis系统中默认定义了两级缓存。一级缓存和二级缓存。 默认情况下,只有一级缓存(SqlSession级别的缓存,也…

JAVA语法基础 3

一.实战演练 1.编写Java程序,声明2个int型变量,运用3元远算符判断两个变量是否相等,若不相等,求出两个数中较大的。 public class 练习题 { public static void main(String[] args) { int a1; int b2; Sys…

堆排序示例-java

package Heapsort; public class TestMain { /** * 调整堆 * param array 数组 * param i 调整的元素i * param length 堆元素个数 */ public static void adaptationArray(int[] array,int i, int length) { // 当前元素 int cur i; while(2*cur2<length) { int curValue …