目录 (一)对鼠标的操作 1.鼠标事件介绍 2.ActionChains 类鼠标操作的常用方法 3.perform()方法 4.鼠标事件操作步骤 5.示例 (1)右键单击.左键双击 (2)鼠标拖拽动作 (3)鼠标悬停.按下动作 (三)对键盘的操作 1.键盘事件介绍 2.使用Keys类来处理键盘操作 3.键盘事件练习 (一)对鼠标的操作 1.鼠标事件介绍 前面例子中我们已经学习到可以用click()来模拟鼠标的单击操作,而我们在实际的Web产品测试中发现,有关鼠标的操作,不单单只有单击,有时候还要…
目录 1.EC模块介绍 2.EC模块常用类 3.EC模块的使用 4.EC模块综合使用 (1)title_is(title)示例 (2)presence_of_element_located(locator)示例(常用) (3)text_to_be_present_in_element(locator,text)示例 (4)注意:(重要) 提示:下文中expected_conditions模块有时简称为EC模块. 1.EC模块介绍 expected_conditions是Selenium的一个模块…
目录 1.Selenium对元素常用操作 2.Selenium对元素的其他操作 1.Selenium对元素常用操作 操作 说明 click() 单击元素 send_keys() 模拟输入 clear() 清除文本 submit() 点击提交 示例,页面代码片段如下: <!DOCTYPE html> <html lang="zh-cn"> <body> <div id="zc"> <legend>注册用户A&…
目录 1.Selenium介绍 2.Selenium的特点 3.Selenium版本说明 4.拓展:WebDriver与Selenium RC的区别 5.Webdriver工作原理 1.Selenium介绍 Selenium是一个用于Web应用程序测试的工具. 只要在测试用例中把预期的用户行为与结果都描述出来,我们就得到了一个可以自动化运行的功能测试套件. Selenium测试套件直接运行在浏览器中,就像真正的用户在操作浏览器一样. Selenium也是一款同样使用Apache License…
目录 1.Selenium实现文件上传 (1)页面中的文件上传说明 (2)文件上传示例 (3)总结 2.Selenium实现文件下载 (1)Firefox浏览器文件下载 1)操作步骤: 2)文件下载示例: (2)Chrome浏览器文件下载 1.Selenium实现文件上传 (1)页面中的文件上传说明 文件上传是Web页面上很常见的一个功能,用脚本去实现文件上传很简单. 一般场景:在页面中的上传按钮是一个<input>标签,其中type属性为type="file",这种可以用…
目录 1.Cookie介绍 2.Session介绍 3.Cookie工作原理图解 4.Cookie内容参数说明 5.Selenium操作Cookie的API 6.Selenium操作Cookie的示例 1.Cookie介绍 HTTP协议是无状态的协议.一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接,这就意味着服务器无法从连接上跟踪会话.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.举个例子:用户A购买了一件商品放入…
目录 1.为什么操作滚动条 2.Selenium如何操作滚动条 3.Selenium操作滚动条方法 4.操作滚动条示例 5.下拉至聚焦元素的位置 (1)实现步骤: (2)实现示例: 1.为什么操作滚动条 在HTML页面中,由于前端技术框架的原因,页面中的一些元素为动态显示,元素根据滚动条的下拉而被加载. 例如:页面注册同意条款,需要滚动条到最底层,才能点击同意. 2.Selenium如何操作滚动条 Selenium的WebDriver类库中并没有直接提供对滚动条进行操作方法,但是Selenium…
目录 1.浏览器安装 2.浏览器驱动下载 (1)ChromeDriver for Chrome (2)Geckodriver for Firefox (3)IEDriverServer for IE (4)for Edge (5)OperaDriver for Opera 3.浏览器驱动与Python整合 4.安装Selenium (1)在线安装 (2)离线安装 5.使用Selenium启动谷歌浏览器 6.拓展说明 Selenium环境搭建步骤: 安装浏览器. 下载浏览器对应的Selenium驱…
目录 1.导入Selenium库 2.创建浏览器对象 3.浏览器窗口大小设置 4.浏览器位置设置 5.请求访问网址 6.浏览器页面前进.后退和刷新 7.关闭浏览器 相比于高大上的各种Selenium进阶指南,个人认为夯实基础至关重要. 在Selenium测试框架的API中,主要分为三大类: 对浏览器本身的相关操作. 对浏览器页面中,元素的定位操作. 对浏览器页面中元素进行定位后,对该元素的一些操作.如:点击.输入等操作. 我们本篇文章先说说Selenium框架对浏览器对象的基础操作. 1.导入S…
目录 1.什么是元素定位 2.Selenium元素定位常用API (1)By_id 定位 (2)by_name 定位 (3)by_class_name 定位 (4)by_tag_name 定位 (5)by_link_text 定位 (6)by_partial_link_text 定位 1.什么是元素定位 元素定位就是查找HTML元素的过程. HTML元素指的是从开始标签(start tag)到结束标签(end tag)的所有代码. 操作页面元素之前,首先要对元素进行定位,所以定位是自动化脚本编写…
目录 1.XPath介绍 2.什么是XML 3.XML与HTML对比 4.为什么使用XPath定位页面中的元素 5.XPath中节点之间的关系 (1)节点的概念 (2)节点之间的关系类型 6.XPath路径表达式语法 (1)基本定位语法: (2)实例: (3)路径表达式总结: 1.XPath介绍 XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. XPath 包含一个标准函数库:XPath 含有超…
目录 1.Selenium中使用XPath查找元素 (1)XPath通过id,name,class属性定位 (2)XPath通过标签中的其他属性定位 (3)XPath层级定位 (4)XPath索引定位 (5)XPath逻辑定位 (6)XPath模糊匹配定位 (7)XPath其他定位方式 2.总结: 前情提示:在前一篇文章中,我们详细的介绍了XPath路径表达式的使用方式.那么本篇文章我们就来说说在Selenium测试框架中如何使用XPath定位元素. XPath定位和Selenium基础元素定位…
目录 1.Selenium中8种基本元素定位方式 (1)单数形式 (2)复数形式 2.By类定位的8种定位方式 (1)单数形式 (2)复数形式 3.XPath定位总结 (1)基础定位语法 (2)属性定位语法 (3)层级定位语法 (4)索引定位语法 (6)逻辑定位语法 (6)模糊定位语法 (7)其他定位语法 4.CSS选择器定位总结 (1)属性定位 (2)属性值模糊匹配定位 (3)标签定位 (4)层级关系定位 (5)索引定位 (6)逻辑运算定位 (7)元素状态定位 5.总结 我们在做Web自动化测…
目录 1.使用Selenium中的Select类来处理下拉菜单(推荐) 2.下拉菜单对象的其他操作(了解) 3.通过元素二次定位方式操作下拉菜单(重点) (1)了解元素二次定位 (2)示例: 页面中的<select></select>标签,就代表该元素是一个下拉菜单. 1.使用Selenium中的Select类来处理下拉菜单(推荐) 可以使用Select类中提供的方法来操作页面中的下拉菜单. (1)操作步骤: # 1.导入包Select类 from selenium.webdriv…
目录 1.多标签/多窗口之间的切换 2.句柄练习 1.多标签/多窗口之间的切换 (1)多标签/多窗口场景: 在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要切换到新打开的窗口上进行操作,如果继续操作原来的页面会报错的.这时候就就时多标签或窗口的情况,即识别切换句柄. (2)操作方法: switch_to.window()方法:切换窗口.可以实现在不同的窗口之间切换. current_window_handle: 获得当前窗口句柄. window_handles: 获取所有窗口句柄.…
目录 1.什么是iframe表单 2.iframe表单操作流程 3.iframe表单操作常用方法 (1)进入表单 (2)多表单切换 4.表单操作示例 1.什么是iframe表单 实际上就是HTML页面中使用iframe/frame标签,是在当前页面中引用了其他页面的链接,真正的页面数据并没有出现在当前页面源码中,但是在浏览器中我们是可以看到内容的.简单理解可以使页面中开了一个窗口显示另一个页面. 我们在Web应用中,经常会遇到这样的iframe表单嵌套页面,Frame标签有frameset.fr…
目录 1.操作浏览器自带弹窗 2.操作浏览器页面自定义弹窗 1.操作浏览器自带弹窗 (1)说明: webdriver中处理JavaScript所生成的alert.confirm 以及prompt 弹窗是很简单的.具体思路是使用switch_to.alert()方法定位到alert/confirm/prompt弹窗.然后使用text/accept/dismiss/send_keys 方法按需进行操做. (2)常用操作: 操作 说明 text 返回alert/confirm/prompt中的文字信息…
目录 1.验证码问题 2.处理验证码的方法 3.Selenium绕过验证码登陆的实现 4.总结 5.补充练习 1.验证码问题 对于Web应用来说,大部分的系统在用户登录时,都要求用户输入验证码.验证码的类型的很多,有字母数字的,有汉字的,甚至还要用户输入一条算术题的答案的.对于系统来说,使用验证码可以有效果的防止采用机器猜测方法对口令的刺探,在一定程度上增加了安全性.但对于测试人员来说,不管是进行性能测试,还是自动化测试都是一个棘手的问题. 2.处理验证码的方法 (1)去掉验证码 这是最简单的方…
目录 1.浏览器的加载项配置 2.加载Firefox配置 3.加载Chrome配置 1.浏览器的加载项配置 在很多情况下,我们在登录网站的时候,浏览器都会弹出一个是否保存登录账号的信息.如果我们选择保存,那么我们在下次登录时就不用再次输入账号,直接免登录了. 在我们实际的测试过程中,测试注册登录只是其中的一部分流程,然而我们用Selenium打开网站的时候,每次都需要重新登录,就非常麻烦.那么在Selenium中能不能实现免登陆操作? 当然是可以的,只需要对要打开的浏览器做加载项配置就可以了.…
目录 1.什么是元素等待 2.为什么要设置元素等待 3.Selenium中常用的等待方式 4.强制等待 5.隐式等待 (1)隐式等待介绍 (2)示例 6.显式等待 (1)显式等待介绍 (2)语法 (3)until()和until_not()方法 (4)具体调用方式示例 1.什么是元素等待 WebDriver定位页面元素时如果未找到,会在指定时间内一直等待的过程.为了保证脚本运行的稳定性,需要脚本中添加等待时间. 2.为什么要设置元素等待 在元素定位的时,可能出现脚本已经运行到定位某个元素的时候,…
目录 1.unittest基本简介 2.unittest基本概念 (1)unittest核心的四个概念 (2)如何创建一个测试类 (3)test fixture常用的四个方法 (4)unittest编写测试方法(用例)规范 (5)执行测试脚本 3.unittest入门示例 1.unittest基本简介 unittest是Python自带的一个单元测试框架,unittest又被称为PyUnit,是由Java的JUnit衍生而来,基本结构是类似的.对于单元测试,需要设置预先条件,对比预期结果和实际结…
目录 1.断言介绍 2.常用的断言方法 3.断言示例 1.断言介绍 在执行测试用例的过程中,最终用例是否执行通过,是通过判断测试得到的实际结果和预期结果是否相等决定的,这时会用到断言方法. 本着没有消息就是最好的消息的原则,如果断言成功不采取任何措施(不输入任何日志),否则就会触发AssertionError(断言错误)的异常. 2.常用的断言方法 断言方法名称 使用参数 验证 assertEqual()(常用) a,b,[msg='测试失败时打印的信息'] 断言a和b是否相等,相等则测试用例通…
目录 1.HTMLTestRunner介绍 2.HTMLTestRunner的使用 3.测试报告示例 4.封装成模块 1.HTMLTestRunner介绍 HTMLTestRunner是一个基于unittest单元测试框架生成HTML报告的第三库. 2.HTMLTestRunner的使用 将下载好的HTMLTestRunner解压,把HTMLTestRunner.py放入Python安装目录的Lib文件下, 如:F:\DevInstall\envs\python\python377\Lib(推荐…
目录 1.XPath轴定位介绍 2.位置路径表达式概念 3.步的路径表达式范例 4.练习 使用XPath轴方式,可根据文档中元素的相对位置,来进行元素的定位.例如:先找到一个相对好定位的元素,在根据与它的相对位置来定位其他元素,可以解决一些元素难以定位的问题. 1.XPath轴定位介绍 轴可理解为相对于当前节点的节点集. 轴名称 结果 ancestor 选取当前节点的所有先辈(父.祖父等). ancestor-or-self 选取当前节点的所有先辈(父.祖父等)以及当前节点本身. attribu…
目录 1.CSS选择器介绍 2.CSS选择器定位语法 3.Selenium中使用CSS选择器定位元素 (1)通过属性定位元素 (2)通过标签定位元素 (3)通过层级关系定位元素 (4)通过索引定位元素 (5)通过逻辑运算定位元素 (6)通过模糊匹配定位元素 4.总结: 1.CSS选择器介绍 CSS(Cascading Style Sheets)是一种语言,它被用来描述HTML 和XML 文档的表现.CSS 使用选择器来为页面元素绑定CSS属性.这些选择器可以被Selenium 用作另外的定位策略…
目录 1.使用By定位的前提 2.By定位的方法 3.By定位的使用 4.复数形式的示例 我们还可以通过Seleniun测试框架中的By类,来实现页面中的元素定位. 1.使用By定位的前提 需要导入By类: from selenium.webdriver.common.by import By 2.By定位的方法 # 1. 通过元素的id属性进行定位. find_element(By.ID, "id属性值") # 2. 通过元素的name属性进行定位. find_element(By.…
目录 1.页面中的单选按钮和多选按钮 2.判断按钮是否选中is_selected() 3.单选按钮的操作 4.多选按钮的操作 5.选择部分多选按钮的操作 1.页面中的单选按钮和多选按钮 页面中的单选按钮和多选按钮样式,如下图所示: 页面代码片段: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> </head> <bod…
目录 1.什么是跳过测试 2.常用的跳过测试方法和装饰器 3.跳过测试示例 4.TestCase.skipTest()方法 1.什么是跳过测试 当测试用例写完后,有些模块有改动时候,会影响到部分用例的执行,这个时候我们希望暂时跳过这些用例.或者前面某个功能运行失败了,后面的几个用例是依赖于这个功能的用例,如果第一步就失败了,后面的用例也就没必要去执行了,为了节省用例执行时间,可选择直接跳过测试. 2.常用的跳过测试方法和装饰器 当执行有想要跳过的测试,我们可以通过skip.skipIf.skip…
目录 1.测试套件的作用 2.使用测试套件 (1)入门示例 (2)根据不同的条件加载测试用例(了解) (3)常用方式(推荐) 1.测试套件的作用 在我们实际工作,使用unittest框架会有两个问题: 我们知道测试用例的执行顺序是根据测试用例名称顺序执行的,在不改变用例名称的情况下,我们怎么来控制用例执行的顺序. 一个测试文件,我们直接执行该文件即可,但如果有多个测试文件,怎么实现多个测试文件一起执行行. 要解决上面两个问题,我们就要用到测试套件TestSuite. 2.使用测试套件 (1)入门…
目录 (一)POM模式介绍 1.什么是POM介绍 2.为什么要使用POM模式 3.POM的优势 4.POM模式封装思路 (1)POM模式将页面分成三层 (2)POM模式的核心要素(重点) (3)总结 (4)非POM和POM对比图 (5)POM设计模式核心架构图 5.对POM小结: (二)将普通的Selenium代码封装成POM模式 1.案例说明: 2.加入unittest测试框架 3.加入元素显示等待 4.引入POM模式 (1)改造案例思路: (2)封装公共操作在base类 (3)每个页面对应一…