自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 Appium之Appium Desired Capabilities

有哪些参数不知道干嘛的可以留言,有时间我会解答

2021-01-24 15:34:01 91

原创 Selenium Webdriver 源码分析之核心remote

源码分析之核心remoteselenium webdriver 的核心代码在remote下,该目录实现和定义了我们进行自动化测试几乎全部的核心API。该目录文件结构如下其源码路径为 selenium/webdriver/remote,remote下个py文件功能大致说明如下:init.py 用于标识remote是标准的python packagecommand.py 一个类,里面定义了标准的webdriver命令常量errorhandler.py 定义了webdriver wire 协议中

2021-01-24 14:55:41 1122

原创 Selenium Webdriver 源码分析之remote/command.py

在了解command.py的源码前,我们需要先了解下webdriver json wire protocol的基础知识。基本概念:所有与浏览器或RemoteWebDriver服务器通信的WebDriver实现都应该使用Webdriver Json Wire Protocol。这个连接协议使用HTTP上的JSON定义了一个RESTful web服务。注意:这是所有webdriver客户端实现的基础协议,所有语言都遵循该协议与远程服务进行交互该协议基于http协议,采用json格式进行数据交换该协议

2021-01-24 14:55:28 421

原创 Selenium Webdriver 源码分析之remote_connection.py

源码分析之remote_connection.py该文件主要实现了selenium server 与http进行交互。remote_connection模块就是实现交互最核心的交互代码,深入理解的肯定是必须的该模块的注释,该类实现了用于与远程Webdriver服务进行交互的HTTP连接。该模块的结构依赖的库依赖的库:需要标准库base64转码、logging日志、platform平台、socket、string、urllib3这个最重要,用于http交互对于不用的py版本,在26-29行

2021-01-24 14:55:16 628

原创 Selenium Webdriver 源码分析之remote/errorhandler.py

selenium错误分析selenium webdriver自动化测试实践时,刚入门UI自动化测试的同行,在面对不同的抛错/异常时,显得措手不及,无法下手,不知道代码错在哪里,怎么去修改,本文从源码层级对selenium webdriver中定义的错误编码进行分析,从根本上去了解错误信息或编码的含义。源码结构导入已经定义好了的异常类,这些异常类均在selenium/common/exceptions下,对应了selenium webdriver各种可能出现异常场景,通过类名就就可以看出可能是哪些异

2021-01-24 14:55:03 1428

原创 Selenium Webdriver 源码分析之remote/switch_to.py

switch_toselenium webdriver + python进行web自动化测试时,经常要进行windows或frame的切换,在面对windows或frame切换时,很多人并不理解其具体实现,或是并未掌握如何进行切换。下面我们就selenium webdriver python端api源码进行分析说明,让大家进一步了解和掌握其使用方法,常用的切换api如下:Frame切换:switch_to.frame()多窗口切换:switch_to.window()在switch_to.p

2021-01-24 14:54:50 388 2

原创 Selenium Webdriver 源码分析之webdriver.py

本文主要分享webdriver.py模块中关键组织结构,webdriver.py模块是selenium webdriver最核心的模块,实现了webdriver日常使用的几乎所有的API,是做自动化测试必须掌握的模块。webdriver.py源码结构1,文档说明,依赖的模块导入,python2/py3兼容全局变量和函数webdriver类部分API功能说明属性相关源码中待@property装饰的方法都是属性相关的。用于获取当前环境的url,缓存(cashe),name,html

2021-01-24 14:54:34 820

原创 Selenium Webdriver 源码分析之WebElement.py

WebElement目录结构该模块提供了WebElement类,主要用于操作web DOM元素,提供的常用API有:方法描述实例代码clear()清空element.clear()click()单击element.click()get_attrbute()获取元素属性element.get_attrbute()is_dissplayed()元素是否可见返回bool类型element.is_dissplayed()is_enabled元素是

2021-01-24 14:54:22 274

原创 Selenium Webdriver 源码分析之touch_actions.py

作用移动设备触摸支持代码如下需要传入一个webdriver对象,用于构建一个TouchActions对象,其他方法与前面 Selenium Webdriver 源码分析之ActionChains 的原理差不多API对应的功能API功能double_tap(on_element)#双击flick(xspeed, yspeed)# 在任意位置开始以指定的速度移flick_element(on_element, xoffset, yoffset, speed)#从

2021-01-24 14:54:06 236

原创 Selenium Webdriver 源码分析之DesiredCapabilities

兼容不同的浏览器方案在大家的实践当中,经常需要在不同的环境(浏览器)中执行测试进行兼容性测试,在selenium webdriver中如何来实现在不同的环境中执行测试脚本呢?在selenium webdriver python驱动代码中提供了DesiredCapabilities类提供了相应的解决方案。我们先看下DesiredCapabilities类定义中的文档说明简单一句话:基于selenium grid 构建分布式自动化测试,selenium server/selenium grid根据测

2021-01-24 14:53:47 1136

原创 Selenium Webdriver 源码分析之alert.py

在JavaScript 有三种类型的弹出框在对selenium/webdriver/common/alert.py源码分析前,我们先看下标准的js弹窗有哪些,在JavaScript 有三种类型的弹出框:警告框、确认框和提示框。第一种:第二种:第三种:注意:要注意三者之间的应用场景及具体的代码,不看html代码,直接只看窗口显示是无法区分是不是标准弹窗的,所以在selenium webdriver实际应用时,必须掌握和分析html源码。下面我们看看在selenium webdriver中提供

2021-01-24 14:53:28 148

原创 Selenium Webdriver源码分析之ActionChains

ActionChains目录结构在源码的例子上,我们实现了将鼠标左键从一个元素移动到另外一个元素上,然后做单击动作链。我们发现不管用方式1还是方式2都调用perform方法,这个就是类似预设一系列的操作,然后调用perform去触发预设。ActionChains对外提供的apiAPI功能备注def click(self, on_element=None)点击如果参数不写,那么点击的是当前鼠标位置 如果参数写定位到的元素对象element,那就是点这个元素def cli

2021-01-16 18:06:23 207

原创 Selenium Webdriver 源码之common

common目录文件结构我们先看下吧common目录下的文件common:主要定义实现了webdriver的一些通用能力,例如键盘鼠标动作链、行为控制、alert处理、html5支持、移动端触摸动作链等等,下面对common目录下文件功能进行说明:action目录:定义了实现键盘输入,鼠标点击移动,设备交互等能力html5目录:定义实现了html5的支持。具体文件功能action_chains.py 定义实现了动作链能力alert.py 定义实现了alert标准弹框处理能力by.py 定

2021-01-16 17:21:18 554

原创 Selenium Webdriver 源码分析之webdriver核心能力目录分析

selenium实例from selenium import webdriver#创建google浏览器webdriver对象driver = webdriver.Chorm()#访问百度首页driver,get(“https://www.baidu.com/”)#断言百度首页titleassert “百度一下,你就知道” in driver.titleselenium 中webdriver包我们查看 webdriver目录下的 init.pySelenium Webdrive支持的平

2021-01-16 16:55:32 247

原创 Selenium 源码分析之异常类源码

selenium webdriver常见的异常先看下selenium webdriver常见的异常:NoSuchElementException:最常见的异常,没有找到元素NoSuchFrameException:没有找到iframeNoSuchWindowException: 没找到窗口句柄handleNoSuchAttributeException: 属性错误NoAlertPresentException:没找到alert弹出框lementNotVisibleException:元素不可见

2021-01-16 16:27:42 201

原创 selenium源码分析系列第一篇

Selenium源码分析之目录结构分析阅读源码的作用看下selenium python端的目录结构阅读源码的作用阅读理解源码能够让我们更容易掌握和理解selenium,让我们能更好做二次封装,加强基层代码能力。##安装seleniumpip install selenium -m查看安装完成后的信息看下selenium python端的目录结构common/exceptions.py 定义了所有可能在webdriver代码中出现的异常webdriver/androidwebd

2021-01-16 15:37:44 1487 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除