#环境配置基于windows操作系统 #学习selenium要有一些HTML和xpth的基础,完全不会的建议先花点时间学点基础(不然元素定位,特别是xpth可能看的有点懵) #HTML :  http://www.runoob.com/html/     #xpth:  http://www.runoob.com/xpath (一)  环境配置 (1)执行下面的命令(前提:已经安装python环境,可以参考之前发的python笔记(一)) pip install -U selenium (2)h…
#之前发的 driver.switch_to_alert() 这句虽然可以运行通过,但是会弹出警告信息(这种写法3.x不建议使用)  改成 driver.switch_to.alert就不会了. (一) 前言 开发人员使用JavaScript 警告或者模态对话框来提示校验错误信息.报警信息.执行操作后的返回信息,甚至用来接收输入值等. (二) Alert类 Selenium WebDriver 通过Alert 类来操控 JavaScript 警告. (三) Alert功能及方法 功能/属性 简单…
 (一) 前言 Webdriver高级应用的API,允许我们模拟简单到复杂的键盘和鼠标事件,如拖拽操作.快捷键组合.长按以及鼠标右键操作,都是通过使用webdriver的Python API 中的ActionChains类实现的. 调用ActionChains类方法时,不会立即执行,而是将所有操作都存放在一个队列里,当调用perform()方法时,队列里的操作会依次执行 (二) 与键盘和鼠标事件有关的一些重要的方法 方法 简单说明 click(on_element=None) 单击元素 on_e…
一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 二.话不多说,直接开干,开始搭建自动化测试环境 这里以前在CSDN写过一篇很详细的博文,零基础的小白都可以看懂,地址如下: python+selenium环境搭建步骤 三.Selenium 原理 Selenium 是一套完整的 web 应用程序测试系统 ,它包含了测试录制(Selenium IDE).编写及运行(Selenium Remote Contro…
笔记二 :print 以及基本文件操作 笔记一已取消置顶链接地址 http://www.cnblogs.com/dzzy/p/5140899.html 暑假只是快速过了一遍python ,现在起开始仔细学一遍 基础操作: #python newer #-*- coding:utf-8 -*- print "我能吞下玻璃而不伤身体" #a shit print 3+1>2*9 print 2333333*2.0/2 shit=2333333.333 print shit name=…
该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.字符串基本操作 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于字符串,但字符串是不可变的,所有元素赋值.切片赋值等操作都是非法的. 2.设置字符串的格式 这里设置字符串格式的基本思想是对字符串调用方法format,并提供要设置其格式的值.每个值都被插入字符串中,以替换用花括号 {} 括起的替换字段.要在最终结果中包含花括号,可以在格式字符串中使用两个花括号(即{{...…
#有的时候可能要访问外国的网站下载资料或工具,这时可能出现各种问题,例如谷歌人机验证显示不了.网站打不开等,建议使用一个FQ软件 (一)  设置IE (1)   http://docs.seleniumhq.org/download/  下载IEDriverServer.(建议下载32位的,64位的驱动执行send_keys很慢,可以都下载感受下) (2)   解压到任意目录,将路径添加到PATH变量中 (3)   Internet选项中,下面4个要么都启用保护模式,要么都不启用. (4)  …
(一) 前言 Selenium Grid可以将测试分布在若干个物理或虚拟机器上,从而实现分布方式或并行方式执行测试. 这个链接是官方的相关说明. https://github.com/SeleniumHQ/selenium/wiki/Grid2 (二) Selenium Grid 大概就是这个意思(一个中心节点(HUB),N个子节点(NODE,操作系统+浏览器)) (三) 环境配置 1. 前提:已经配置相应的 JDK环境(LINUX自带JDK环境(我装的LINUX自带的是1.8),WINDOWS…
(一)   前言 通过使用数据驱动测试,实现对输入值和预期结果的参数化.(例如:输入数据和预期结果可以直接读取Excel文档的数据) (二)   ddt 使用ddt执行数据驱动测试,ddt库可以将测试中的变量参数化.使用ddt的时候,在测试类上使用@ddt装饰符,在测试方法上使用@data装饰符.@data装饰符将参数当作测试数据,参数可以是单个值.列表.元组.字典.对于列表和元组,需要用@unpack装饰符把列表和元组解析成多个参数. 使用下面的命令安装ddt库 pip install ddt…
问题 有的时候开发不同的业务,所需要的环境不一样.一直在同一个环境中开发时候,不同的包版本升级可能会导致另外的业务不能正常工作.另外,有的github上的项目需要的开发环境与你使用的环境不同,冒然的按照它的requirements安装相应的包会产生类似的问题.一般而言,针对这种情况,对不同的业务,如果是存在依赖包存在版本升降级问题,常规的办法是对不同的业务创建不同的虚拟环境,在各个业务下,先进入虚拟环境,然后需要那种依赖包再进行安装,这样就不会产生版本不一样,或者版本升级导致的其它业务不能正常工…
(一)安装xmlrunner 使用Jenkins执行测试时,测试代码中会用到这个模块. pip install xmlrunner (二)安装jenkins (1)   下载jekins https://jenkins.io/download/ 下载适合自己的,我是下载长期稳定版的. (2)   解压后运行jenkins.msi这个文件,然后一直下一步就是了. (3)   http://localhost:8080 登录 (4)   根据提示输入密码后,下一步. (6)   这里第一个应该是默认…
一般RobotFramework都是安装在Windows/Linux的PC机上,这里将简单介绍在树莓派硬件平台上配置RobotFramework的开发和运行环境. 树莓派上配置了自动化测试软件,可以考虑用多个这个廉价的“计算机”,开展并行的测试用例执行.成倍提高效率. 这只是一个应用的举例,相信你能找到更多的应用场景,欢迎交流探讨. 1.Install Python 树莓派的标准系统已经安装有Python2.7和Python3.此步骤跳过. 2.Install wxPython 由于RobotF…
1.CMD下载安装selenium pip install selenium 2.python运行: from selenium import webdriver browser = webdriver.Chrome() browser.get('http://www.baidu.com') 会提示出错:'chromedriver' executable needs to be in PATH 3.安装Chrome Driver:下载地址(注意:最下面不是最新的:安装版本需要和Google Ch…
#HTMLTestRunner代码修改参考 微微微笑 的说明,下面是链接,这个已经说的很详细了 https://www.cnblogs.com/miniren/p/5301081.html (一) 前言 unittest在命令行输出测试结果.你可能需要生成一个所有测试的执行结果作为报告或者把测试结果发给相关人员.给相关人员发送命令行日志不是一个明智的选择.他们需要格式更加友好的测试报告,既能够查看测试结果的概况,也能够深入查看报告细节. (二) 使用HTMLTestRunner生成测试报告 HT…
#网络很慢可能会运行报错 (一)   前言 Selenium WebDriver是一个浏览器自动化测试的API集合.它提供了很多与浏览器自动化交互的特性,并且这些API主要是用于测试Web程序.如果仅仅使用Selenium WebDriver,我们无法实现执行测试前置条件.测试后置条件,比对预期结果和实际结果,检查程序的状态,生成测试报告,创建数据驱动的测试等功能. (二)   unittest单元测试框架 unittest(一般称为PyUnit)是从Java程序开发中广泛应用的JUnit启发而…
一.selenium.unittest概念 Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架.它是一款用于运行端到端功能测试的超强工具.您可以使用多个编程语言编写测试,并且 Selenium 能够在一个或多个浏览器中执行这些测试,同时支持所有基于web 的管理任务自动化.unittest是单元测试框架,不仅适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,断言,其实就是对测试结果进行校验,每一个测试用例…
一.算法 1.归并排序 2.快速排序 3.算法复杂度 4.哈希表数据结构 二.数据库 1.设计一个用户关注系统的数据库表 1.设计一个用户关注系统的数据库表,写三个相关的SQL语句两张表,一张user表,一张relation表 # 建立user表 ) not null) # 建立relation表:uid--用户ID,rid--用户关注的人ID create table relation(uid int not null,rid int not null) # 1.查询用户a关注的人 selec…
(一)方法 方法 简单说明 add_cookie(cookie_dict) 在当前会话中添加cookie信息 cookie_dict:字典,name和value是必须的 delete_all_cookies() 在当前会话中删除所有cookie信息 delete_cookie(name) 删除单个名为name的cookie信息 get_cookie(name) 返回单个名为name的cookie信息,如果没有找到,返回none get_cookies() 返回当前会话所有的cookie信息  …
(一) 方法 方法 简单说明 execute_async_script(script, args) 异步执行JS代码 script:被执行的JS代码 args:js代码中的任意参数 execute_script(script, args) 同步执行JS代码 script:被执行的JS代码 args:js代码中的任意参数 (二) 示例 from selenium.webdriver.common.action_chains import ActionChains from selenium imp…
 (一) 前言 突然的资源受限或网络延迟,可能导致找不到目标元素,这时测试报告会显示测试失败.这时需要一种延时机制,来使脚本的运行速度与程序的响应速度相匹配,WebDriver为这种情况提供了隐式等待和显式等待两种机制. (二) 隐式等待 一旦设置隐式等待时间,就会作用于这个WebDriver实例的整个生命周期(对所有的元素查找都生效),设置隐式等待时间后,Webdriver会在一定时间内持续检测和搜寻DOM,以便于查找一个或多个不是立即加载成功并可用的元素.隐式等待的默认时间是0. WebDr…
  (一)  前言 Web应用以及包含超文本标记语言(HTML).层叠样式表(CSS).JS脚本的WEB页面,基于用户的操作(例如点击提交按钮),浏览器向WEB服务器发送请求,WEB服务器响应请求,返回给浏览器HTML及相关的JS.CSS.图片等资源,浏览器使用这些资源生成WEB页面,其中包含WEB各种视觉元素,例如文本框.按钮.标签.图标.复选框.下拉框.图片等,这些视觉元素或控件都被Selenium称为页面元素(webelements). 想要让Selenium执行我们想要的操作,首先必须让…
(一) Test Suite测试套件 一个测试套件是多个测试或测试用例的集合,是针对被测程序的对应的功能和模块创建的一组测试,一个测试套件内的测试用例将一起执行. 应用unittest的TestSuites特性,可以将不同的测试组成一个逻辑组,然后设置统一的测试套件,并通过一个命令来执行测试.这都是通过TestSuites.TestLoader和TestRunn类来实现的. (二) 类级别的setUp()方法和tearDown()方法 使用setUpClass()方法和tearDownClass…
知识点一:urllib的详解及基本使用方法 一.基本介绍 urllib是python的一个获取url(Uniform Resource Locators,统一资源定址器)了,我们可以利用它来抓取远程的数据进行保存. 二.什么是Urllib Python内置的Http请求库,包含四个模块: urllib.request 请求模块   (模拟浏览器,可以用来发送request和获取request的结果) urllib.error 异常处理模块 (包含了urllib.request产生的异常) url…
1.安装环境  下载python 3.6.4 第一页把最下面的环境变量勾上.第二页把 all user  勾上  直接安装到下一步 安装完成之后 cmd直接输入python  可以看到版本 2.安装 selenium pip install -U selenium 3.下载最新的webdriver PM> Install-Package Selenium.WebDriver.IEDriver -Version 3.9.0  vs直接用nuget安装 4.打包 成EXE 可移植直接运行 使用pip…
Struts2执行流程 1.简单执行流程,如下所示: 在浏览器输入请求地址,首先会被过滤器处理,然后查找主配置文件,然后根据地址栏中输入的/hello去每个package中查找为/hello的namespace,然后在包下寻找名为HelloAction的action,反射创建控制器HelloAction对象,调用method指定的方法hello,拿到返回值“success”,去result的配置节找success对应的页面(hello.js),呈现给用户. 2.Struts的架构,具体参考这里…
---恢复内容开始--- 一. python几种数据类型的比较. 从以下几个方面比较: 1. 是否可变. 不可变类型:变量的值可以发生变化,id也变了,相当于创建了一个新的对象,所以一修改值,id就变了,这种类型称之为不可变类型. 可变类型:变量的值可以发生变化,而且 id不会变,所以称之为可变类型. 例子: #数字类型样例x=10 print (id(x))输出:1374668752 # 修改x的值为100,看看id变了吗?x=100print (id(x))输出:1374671632可以看到…
标识符和关键字 1,邮箱的Python标识符是任意长度的非空字符序列(引导字符+后续字符.) python标识符必须符合两条规则--标识符区分大小写 (1)只要是unicode编码字母都可以充当引导字符,包括unicode编码中认为是数字的任意字符. (2)关于(_) 的使用,名的开头和结尾尽量避免使用(_) for _ in [1,2,3,4,5] print(" _ 可省略变量") Intergral类型 2,python提供了两个内置订单Intergral类型:int,bool…
(一) 方法 方法 简单说明 save_screenshot(filename)   获取当前屏幕截图并保存为指定文件 filename:路径/文件名 get_screenshot_as_base64() 获取当前屏幕截图base64编码字符串 get_screenshot_as_file(filename) 获取当前屏幕截图,使用完整的路径.如果有任何IOerror,返回false,否则返回true filename:路径/文件名 get_screenshot_as_png() 获取当前屏幕截…
(一) 前言 简单的说就是分为2层,页面class 和测试class. 页面class:分为父类和子类(子类指具体的页面,每一个页面都创建一个类),父类中定义公有的属性和方法(操作). #对面向对象有了解的,应该很容易理解抽象出公有属性和方法的意思 #父类和子类我是按自己的理解进行描述的,或者可以说basepage对象(父对象,提供公有的属性.方法) 和 page对象(具体哪一个页面) 测试class:按照业务流程,对各个页面的属性.操作进行组合,形成一个测试用例. 使用page object模…
(一) Select类 Select类是selenium的一个特定的类,用来与下拉菜单和列表交互. 下拉菜单和列表是通过HTML的<select> 元素实现的.选择项是通过<select>中的<option>元素实现的.使用前使用下面的语句导入模块. from selenium.webdriver.support.ui import Select (二) Select类的功能及方法 功能/属性 简单说明 all_selected_options 获取下拉菜单和列表中被选…