目录 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.测试套件的作用 2.使用测试套件 (1)入门示例 (2)根据不同的条件加载测试用例(了解) (3)常用方式(推荐) 1.测试套件的作用 在我们实际工作,使用unittest框架会有两个问题: 我们知道测试用例的执行顺序是根据测试用例名称顺序执行的,在不改变用例名称的情况下,我们怎么来控制用例执行的顺序. 一个测试文件,我们直接执行该文件即可,但如果有多个测试文件,怎么实现多个测试文件一起执行行. 要解决上面两个问题,我们就要用到测试套件TestSuite. 2.使用测试套件 (1)入门…
目录 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中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对元素常用操作 2.Selenium对元素的其他操作 1.Selenium对元素常用操作 操作 说明 click() 单击元素 send_keys() 模拟输入 clear() 清除文本 submit() 点击提交 示例,页面代码片段如下: <!DOCTYPE html> <html lang="zh-cn"> <body> <div id="zc"> <legend>注册用户A&…
目录 (一)对鼠标的操作 1.鼠标事件介绍 2.ActionChains 类鼠标操作的常用方法 3.perform()方法 4.鼠标事件操作步骤 5.示例 (1)右键单击.左键双击 (2)鼠标拖拽动作 (3)鼠标悬停.按下动作 (三)对键盘的操作 1.键盘事件介绍 2.使用Keys类来处理键盘操作 3.键盘事件练习 (一)对鼠标的操作 1.鼠标事件介绍 前面例子中我们已经学习到可以用click()来模拟鼠标的单击操作,而我们在实际的Web产品测试中发现,有关鼠标的操作,不单单只有单击,有时候还要…
目录 1.Selenium介绍 2.Selenium的特点 3.Selenium版本说明 4.拓展:WebDriver与Selenium RC的区别 5.Webdriver工作原理 1.Selenium介绍 Selenium是一个用于Web应用程序测试的工具. 只要在测试用例中把预期的用户行为与结果都描述出来,我们就得到了一个可以自动化运行的功能测试套件. Selenium测试套件直接运行在浏览器中,就像真正的用户在操作浏览器一样. Selenium也是一款同样使用Apache License…
目录 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中的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.Selenium如何操作滚动条 3.Selenium操作滚动条方法 4.操作滚动条示例 5.下拉至聚焦元素的位置 (1)实现步骤: (2)实现示例: 1.为什么操作滚动条 在HTML页面中,由于前端技术框架的原因,页面中的一些元素为动态显示,元素根据滚动条的下拉而被加载. 例如:页面注册同意条款,需要滚动条到最底层,才能点击同意. 2.Selenium如何操作滚动条 Selenium的WebDriver类库中并没有直接提供对滚动条进行操作方法,但是Selenium…
目录 1.什么是元素等待 2.为什么要设置元素等待 3.Selenium中常用的等待方式 4.强制等待 5.隐式等待 (1)隐式等待介绍 (2)示例 6.显式等待 (1)显式等待介绍 (2)语法 (3)until()和until_not()方法 (4)具体调用方式示例 1.什么是元素等待 WebDriver定位页面元素时如果未找到,会在指定时间内一直等待的过程.为了保证脚本运行的稳定性,需要脚本中添加等待时间. 2.为什么要设置元素等待 在元素定位的时,可能出现脚本已经运行到定位某个元素的时候,…
目录 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.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.操作浏览器页面自定义弹窗 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.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…
目录 (一)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)每个页面对应一…