Selenium基础
web自动化基础
Liuyuelinjiayou
终有一天,你会静心下来,像个局外人一样看自己的故事,笑着摇摇头。
展开
-
Selenium3.0快乐之旅(基础知识汇总)
点击就可以跳转到相关文章了。一、Selenium介绍Selenium自动化测试框架介绍Selenium环境搭建(Windows环境)Selenium体验二、Selenium页面元素定位Selenium操作浏览器对象基础APISelenium基本元素定位6种XPath介绍Selenium中使用XPath定位元素补充:XPath轴定位元素Selenium中使用By定位元素Selenium中使用CSS选择器定位元素Selenium中32种基本元素定位总结三、Selenium页面原创 2020-05-28 17:22:35 · 864 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 32、将普通的Selenium代码封装成POM模式
文章目录1、案例说明:2、加入unittest测试框架3、加入元素显示等待4、引入POM模式(1)改造案例思路:(2)封装公共操作在base类(3)每个页面对应一个page类(4)原登陆案例封装完成代码5、总结1、案例说明:这里只是提供一种封装的思路,小伙伴们可以根据自己的实际情况,按需封装。以下是简单普通的登录测试用例:# 1. 导入包from selenium import webdriverimport time# 2. 打开谷歌浏览器(获取浏览器操作对象)driver = webd原创 2020-06-04 21:21:36 · 676 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 31、自动化测试POM设计模式介绍
文章目录(一)POM模式介绍1、什么是POM?2、为什么要使用POM模式3、POM的优势4、POM模式封装思路(1)POM模式将页面分成三层(2)POM模式的核心要素(重点)(3)总结(4)非POM和POM对比图(5)POM设计模式核心架构图5、对POM小结:(一)POM模式介绍1、什么是POM?POM是Page Object Model页面对象模型的简称。POM是为Web UI元素创建Object Repository的设计模式 。在这个模型下,对于应用程序中的每个网页,应该有相应的页面类。原创 2020-06-04 21:15:26 · 745 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 30、Unittest集成HTMLTestRunner自动生成测试报告
文章目录1、HTMLTestRunner介绍2、HTMLTestRunner的使用3、测试报告示例4、封装成模块1、HTMLTestRunner介绍HTMLTestRunner是一个基于unittest单元测试HTML报告的第三库。2、HTMLTestRunner的使用将下载好的HTMLTestRunner解压,把HTMLTestRunner.py放入Python安装目录的Lib文件下,如:F:\DevInstall\envs\python\python377\Lib(推荐)或者F:\Dev原创 2020-06-03 18:48:10 · 663 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 29、Unittest单元测试框架的测试套件
文章目录1、测试套件的作用2、使用测试套件(1)入门用法(2)根据不同的条件加载测试用例(了解)(3)常用方式(推荐)1、测试套件的作用在我们实际工作,使用unittest框架会有两个问题:我们知道测试用例的执行顺序是根据测试用例名称顺序执行的,在不改变用例名称的情况下,我们怎么来控制用例执行的顺序。一个测试文件,我们直接执行该文件即可,但如果有多个测试文件,怎么实现多个测试文件一起执行行。要解决上面两个问题,我们就要用到测试套件TestSuite。2、使用测试套件(1)入门用法用法:原创 2020-06-03 12:28:48 · 642 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 28、Unittest单元测试中跳过测试
文章目录1、什么是跳过测试2、常用的跳过测试方法和装饰器3、跳过测试示例4、TestCase.skipTest()方法1、什么是跳过测试当测试用例写完后,有些模块有改动时候,会影响到部分用例的执行,这个时候我们希望暂时跳过这些用例。或者前面某个功能运行失败了,后面的几个用例是依赖于这个功能的用例,如果第一步就失败了,后面的用例也就没必要去执行了,为了节省用例执行时间,可选择直接跳过测试。2、常用的跳过测试方法和装饰器当执行有想要跳过的测试,我们可以通过skip、skipIf、skipUnless装饰原创 2020-06-03 12:23:09 · 662 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 27、Unittest单元测试框架的断言
文章目录1、断言介绍2、常用的断言方法3、断言示例1、断言介绍在执行测试用例的过程中,最终用例是否执行通过,是通过判断测试得到的实际结果和预期结果是否相等决定的,这时会用到断言方法。本着没有消息就是最好的消息的原则,如果断言成功不采取任何措施(不输入任何日志),否则就会触发AssertionError(断言错误)的异常。2、常用的断言方法断言方法名称使用参数验证assertEqual()(常用)a,b,[msg=‘测试失败时打印的信息’]断言a和b是否相等,相等则测试用例原创 2020-06-03 12:03:49 · 629 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 26、Unittest单元测试框架介绍
文章目录(一)unittest基本简介(二)unittest基本概念1、unittest核心的四个概念2、如何创建一个测试类3、`test fixture`常用的四个方法(1)基于函数级别的方法(2)基于类级别的方法4、unittest编写测试方法(用例)规范5、执行测试脚本6、入门示例7、结果说明(一)unittest基本简介unittest是Python自带的一个单元测试框架,unittest又被称为PyUnit,是由Java的JUnit衍生而来,基本结构是类似的。对于单元测试,需要设置预先条件,对原创 2020-06-03 11:55:31 · 656 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 25、Selenium中的expected_conditions模块
文章目录1、expected_conditions模块介绍2、expected_conditions模块常用类3、expected_conditions模块独立使用4、expected_conditions模块综合使用(1)title_is(title)示例(2)presence_of_element_located(locator)示例(常用)(3)text_to_be_present_in_element(locator,text)示例(4)注意(重要)1、expected_conditions模块介原创 2020-05-28 00:19:14 · 907 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 24、Selenium元素等待
文章目录1、什么是元素等待2、为什么要设置元素等待3、Selenium中常用的等待方式4、强制等待5、隐式等待(1)隐式等待介绍(2)示例6、显式等待(1)显式等待介绍(2)语法(3)`until()`和`until_not()`方法@1.until(method, message=' ')@2.until_not(method, message=’ ’)(4)具体调用方式(5)示例1、什么是元素等待WebDriver定位页面元素时如果未找到,会在指定时间内一直等待的过程。为了保证脚本运行的稳定性,需要原创 2020-05-27 01:09:06 · 780 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 23、拓展:Selenium使用浏览器加载项配置实现用户免登陆
文章目录1、什么是加载项配置2、加载Firefox配置说明:示例:3、加载Chrome配置环境:操作步骤:示例:1、什么是加载项配置在很多情况下,我们在登录网站的时候,浏览器都会弹出一个是否保存登录账号的信息。如果我们选择保存,那么我们在下次登录时就不用再次输入账号,直接免登录了。在我们实际的测试过程中,测试注册登录只是其中的一部分流程,然而我们用selenium打开网站的时候,每次都需要重新登录,就非常麻烦。那么在selenium中能不能实现免登陆操作?当然是可以的,只需要对要打开的浏览器做加载项原创 2020-05-26 21:05:45 · 851 阅读 · 1 评论 -
【心善渊&Selenium3.0基础】— 22、Selenium实现通过cookie绕过验证码登陆
文章目录1、验证码问题2、处理验证码的方法(1)去掉验证码(2)设置万能码(3)验证码识别技术(4)记录cookie3、Selenium实现通过cookie绕过验证码登陆4、总结1、验证码问题对于web 应用来说,大部分的系统在用户登录时,都要求用户输入验证码。验证码的类型的很多,有字母数字的,有汉字的,甚至还要用户输入一条算术题的答案的。对于系统来说,使用验证码可以有效果的防止采用机器猜测方法对口令的刺探,在一定程度上增加了安全性。但对于测试人员来说,不管是进行性能测试,还是自动化测试都是一个棘手的问原创 2020-05-26 21:00:05 · 872 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 21、Selenium对cookie的操作
文章目录1、cookie介绍2、session介绍3、cookie和session工作原理图解4、记录cookie的作用5、Selenium操作cookie 的方法6、示例:7、cookie内容参数说明1、cookie介绍HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接,这就意味着服务器无法从连接上跟踪会话。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。举个例子:用户A购买了一件商品放入购物车原创 2020-05-26 20:56:13 · 765 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 20、Selenium操作文件上传和下载
文章目录一、文件上传说明:示例:总结:二、文件下载1、Firefox浏览器文件下载步骤:实例:2、Chrome浏览器文件下载示例:说明:一、文件上传说明:文件上传是web页面上很常见的一个功能,用脚本去实现文件上传很简单。一般场景:在页面中的上传按钮是一个标签,其中type属性为type="file",这种可以用selenium提供的send_keys()方法轻松解决。示例:页面代码片段:<!DOCTYPE html><html lang="zh-cn"><h原创 2020-05-26 14:44:29 · 852 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 19、Selenium操作浏览器中的弹窗
文章目录1、浏览器自带弹窗的操作说明:常用操作:示例:2、页面自定义弹窗操作需求:实现方式:示例:1、浏览器自带弹窗的操作说明:webdriver中处理JavaScript所生成的alert、confirm以及prompt弹窗是很简单的。具体思路是使用switch_to.alert()方法定位到alert/confirm/prompt弹窗。然后使用text/accept/dismiss/send_keys方法按需进行操做。常用操作:操作说明text返回alert/confir原创 2020-05-26 14:35:40 · 862 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 18、Selenium操作浏览器窗口滚动条
文章目录1、为什么需要操作滚动条2、Selenium如何操作滚动条3、Selenium操作滚动条方法4、练习5、下拉至聚焦元素的位置步骤:示例:1、为什么需要操作滚动条在HTML页面中,由于前端技术框架的原因,页面中的一些元素为动态显示,元素根据滚动条的下拉而被加载。例如:页面注册同意条款,需要滚动条到最底层,才能点击同意。2、Selenium如何操作滚动条Selenium的WebDriver类库中并没有直接提供对滚动条进行操作方法,但是Selenium提供了可调用JavaScript脚本的方原创 2020-05-26 14:32:22 · 770 阅读 · 1 评论 -
【心善渊&Selenium3.0基础】— 17、Selenium中iframe表单的操作
文章目录1、什么是iframe表单2、iframe表单操作流程3、iframe表单操作常用方法(1)进入表单(2)多表单切换4、示例1、什么是iframe表单实际上就是HTML页面中使用iframe/frame标签,是在当前页面中引用了其他页面的链接,真正的页面数据并没有出现在当前页面源码中,但是在浏览器中我们时看到的。简单理解可以使页面中开了一个窗口显示另一个页面。我们在Web应用中,经常会遇到这样的iframe表单嵌套页面,Frame标签有frameset、frame、iframe三种,frame原创 2020-05-26 14:20:57 · 848 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 16、Selenium中多标签/多窗口切换操作
文章目录1、多标签/多窗口之间的切换场景:操作方法:2、练习1、多标签/多窗口之间的切换场景:在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要切换到新打开的窗口上进行操作。这种情况下,需要识别多标签或窗口的情况。操作方法:switch_to.window()方法:切换窗口。可以实现在不同的窗口之间切换。current_window_handle: 获得当前窗口句柄。window_handles: 获取所有窗口句柄。提示:句柄就可以理解成浏览器窗口的id值。操作说明:原创 2020-05-26 14:17:49 · 941 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 15、Selenium中单选按钮和多选按钮的操作
文章目录1、页面中的单选按钮和多选按钮2、判断按钮是否选中`is_selected()`3、单选按钮的操作4、多选按钮的操作实现步骤:示例:5、选择部分多选按钮的操作1、页面中的单选按钮和多选按钮页面中的单选按钮和多选按钮样式如下图:页面代码片段:<!DOCTYPE html><html lang="zh-cn"><head> <meta charset="UTF-8"></head><body><fi原创 2020-05-26 14:08:37 · 1048 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 14、Selenium中下拉菜单操作
文章目录1、使用Selenium中的Select类来处理下拉菜单(推荐)操作步骤示例:2、下拉菜单对象的其他操作(了解)3、通过元素二次定位方式操作下拉菜单(重点)了解元素二次定位示例:页面中的标签,就代表该元素是一个下拉菜单。1、使用Selenium中的Select类来处理下拉菜单(推荐)可以使用Select类中提供的方法来操作页面中的下拉菜单。操作步骤# 1.导入包Select类from selenium.webdriver.support.select import Select# 2原创 2020-05-26 13:58:37 · 915 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 13、Selenium中鼠标和键盘的操作
文章目录一、鼠标事件1、鼠标事件介绍2、ActionChains 类鼠标操作的常用方法3、perform()方法4、鼠标事件操作步骤5、示例(1)右键单击、左键双击(2)鼠标拖拽动作(3)鼠标悬停、按下动作二、键盘事件1、键盘时间介绍2、使用Keys类来处理键盘操作3、示例一、鼠标事件1、鼠标事件介绍前面例子中我们已经学习到可以用click()来模拟鼠标的单击操作,而我们在实际的web产品测试中发现,有关鼠标的操作,不单单只有单击,有时候还要用到右击,双击,拖动等操作,这些操作包含在ActionCha原创 2020-05-26 13:27:45 · 922 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 12、Selenium中元素常用操作
文章目录1、元素常用操作示例:补充:2、元素其他操作方法示例:1、元素常用操作操作说明click()单击元素send_keys()模拟输入clear()清除文本submit()点击提交示例:页面代码片段:<!DOCTYPE html><html lang="zh-cn"><body><div id="zc"> <legend>注册用户A</legend>原创 2020-05-26 13:14:27 · 828 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 11、Selenium中32种基本元素定位总结
文章目录一、Selenium中WebDriver8种基本元素定位方式二、WebDriver8种基本元素定位方式复数形式三、By定位8种定位方式四、By定位8种定位方式复数形式五、XPath定位总结1、基础定位语法2、属性定位语法3、层级定位语法4、索引定位语法5、逻辑定位语法6、模糊定位语法7、其他定位语法(1)其他常用定位(2)选取若干路径(3)`.`和`..`(4)XPath 表达式中的运算符六、CSS选择器定位总结1、css属性定位2、css属性值模糊匹配定位3、css标签定位4、css层级关系定位5原创 2020-05-23 17:53:17 · 1006 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 10、Selenium中使用CSS选择器定位
文章目录1、CSS选择器介绍2、css_selector定位语法3、Selenium中使用css_selector定位(1)css属性定位(2)css标签定位(3)css层级关系定位(4)css索引定位(5)css逻辑运算定位(6)css模糊匹配定位总结:1、CSS选择器介绍CSS(Cascading Style Sheets)是一种语言,它被用来描述HTML 和XML 文档的表现。CSS 使用选择器来为页面元素绑定css属性。这些选择器可以被selenium 用作另外的定位策略。by_css_sel原创 2020-05-23 16:40:04 · 1126 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 9、Selenium中使用By定位
文章目录1、前提:2、语法如下:3、示例:4、复数形式语法:练习:我们也可以用By定位来设置元素定位策略。1、前提:需要导入By类from selenium.webdriver.common.by import By 2、语法如下:# 1. 通过元素的id属性进行定位。find_element(By.ID, "id属性值")# 2. 通过元素的name属性进行定位。find_element(By.NAME, "name属性值")# 3. 通过元素的class属性进行定位。find原创 2020-05-23 16:19:29 · 1147 阅读 · 1 评论 -
【心善渊&Selenium3.0基础】— 8、补充:XPath轴定位
文章目录1、XPath 轴2、位置路径表达式概念(1)绝对位置路径:(2)相对位置路径:(3)步(step)包括:3、步的语法:4、路径表达式范例5、练习1、XPath 轴轴可定义为相对于当前节点的节点集。轴名称结果ancestor选取当前节点的所有先辈(父、祖父等)。ancestor-or-self选取当前节点的所有先辈(父、祖父等)以及当前节点本身。attribute选取当前节点的所有属性。child选取当前节点的所有子元素。descendant原创 2020-05-23 16:02:53 · 871 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 7、Selenium中使用XPath定位
文章目录1、Selenium使用XPath的语法2、Selenium中使用XPath查找元素(1)XPath通过`id`,`name`,`class`属性定位(2)XPath通过标签中的其他属性定位(3)XPath层级定位(4)XPath索引定位(5)XPath逻辑定位(6)XPath模糊匹配定位(7)XPath其他定位方式@[email protected]@3.Text@4.`|`连结符总结:1、Selenium使用XPath的语法单数定位,获得一个指定元素对象driver.fi原创 2020-05-23 15:49:42 · 1313 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 6、XPath介绍
文章目录1、什么是 XPath?2、什么是XML?XML介绍XML实例:XML使用:3、XML与HTML对比4、为什么使用XPath在页面中定位元素5、XPath中节点之间的关系类型(1)节点的概念(2)节点之间的关系类型@1.父节点(Parent)@2.子节点(Children)@3.同胞(Sibling)@4.先辈(Ancestor)@5.后代(Descendant)@6.基本值(或称原子值,Atomic value)6、XPath路径表达式语法基本定位语法如下:实例:路径表达式总结:1、什么是 XP原创 2020-05-23 15:40:23 · 819 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 5、Selenium基本元素定位
文章目录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)到结原创 2020-05-23 15:34:07 · 1174 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 4、Selenium操作浏览器对象基础API
文章目录1、导入Selenium库2、创建浏览器对象3、浏览器窗口大小设置4、浏览器位置设置5、请求访问网址6、浏览器页面前进、后退和刷新7、关闭浏览器1、导入Selenium库from selenium import webdriver2、创建浏览器对象也就是打开一个浏览器# 语法:driver = webdriver.xxx()driver = webdriver.Chrome()# 使用dir(driver)查看浏览器对象的操作print(dir(driver))3、浏览器窗口大原创 2020-05-22 11:59:47 · 836 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 3、Selenium体验
文章目录1、使用Selenium启动Chrome浏览器2、Chrome浏览器使用拓展(1)屏蔽“Chrome 正受到自动测试软件的控制“提示信息(2)使用Chrome浏览器模拟移动端上一篇文章我们搭建好Selenium自动化测试框架的环境,我们现在来体验一下吧。1、使用Selenium启动Chrome浏览器"""1.学习目标 掌握使用selenium启动谷歌浏览器2.操作步骤 2.1 导入selenium包 2.2 选择并打开浏览器(谷歌) 2.3 输入百度网址原创 2020-05-21 15:35:38 · 745 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 2、Selenium环境搭建(Windows环境)
文章目录1、浏览器安装2、浏览器驱动下载(1)ChromeDriver for Chrome(2)Geckodriver for Firefox(3)IEDriverServer for IE(4)for Edge@1.如何查看windows 10中Edge浏览器的版本@2.Edge浏览器18版本的Selenium驱动安装(6)Safari浏览器3、浏览器驱动安装4、安装Selenium(1)在线安装(2)离线安装我们先通过chrome浏览器的Selenium自动化测试环境搭建为例说明。1、浏览器安装原创 2020-05-21 15:32:18 · 779 阅读 · 0 评论 -
【心善渊&Selenium3.0基础】— 1、Selenium自动化测试框架介绍
文章目录1、什么是selenium2、selenium的特点3、Selenium版本(1)`Selenium1.0`(2)`Selenium2.0`(3)`Selenium3.0`(推荐)(4)提示(5)Selenium组件总结4、拓展:WebDriver与Selenium RC的区别(1)Selenium RC(2)WebDriver总结:5、Webdriver工作原理1、什么是seleniumSelenium是一个用于Web应用程序测试的工具。只要在测试用例中把预期的用户行为与结果都描述出来,原创 2020-05-21 15:12:49 · 855 阅读 · 0 评论