自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Django ORM常用字段介绍

常用字段介绍:CharField 用于存放字符类型的数据,需要指定长度max_lengthIntegerField integer类型,数值范围从-2127283648到2147483647FloatField 用于存放浮点型数据BooleanField 用于存放布尔类型的数据(True或者False)DateField 日期类型,必须是"YYYY-MM-DD"格式DateTimeField 日期类型必须是"YYYY-MM

2020-06-07 02:30:33 241

原创 django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or newer is required

今天在搭建django3+python3.7.0+pymysql遇到的报错解决思路:1.先查看pymysql是否版本过低了,pip list --outdated 查看所有需要升级的包pip install --upgrade 接包名查看后发现不是pymsql版本的问题2.然后查看报错位置文件,发现了问题的根源:MySQLclient 目前只支持到 Python3.4,因此如果使用的更高版本的 python找到/usr/local/lib/python3.7/site-packages/

2020-05-31 01:11:39 1328 1

原创 selenium显示等待怎么写之WebDriverWait中until的两种实现方式及原理分析

关于显示等待WebDriverWait是什么,可以看selenium-wait源码解析话不多说,先上实现代码:第一种实现方式(官方提供):from selenium.webdriver.support.wait import WebDriverWaitelement = WebDriverWait(driver, 10).until(lambda x: x.find_element_by...

2020-03-26 22:34:09 14283

原创 Appium运行时日志解析(内附Demo)

[Appium] Welcome to Appium v1.15.1启动Appium1.15.1版本[Appium] Non-default server args:[Appium] allowInsecure: {[Appium] }[Appium] denyInsecure: {[Appium] }[Appium] Appium REST http interfa...

2020-03-24 02:47:28 2005

原创 selenium历史与webdriver实现原理

**我们常说的selenium是什么?**移除SeleniumSelenium 1.0Selenium 2.0Selenium 3.0Selenium IDESelenium GridSelenium RCSelenium 1.0WebdriverSelenium2.0Selenium RC

2020-03-15 21:58:05 256

原创 selenium3源码解析Python篇(十九)-wait源码解析

本章主讲webdriver超时机制显示等待,超时则抛出TimeoutException目录结构:源码解析:class WebDriverWait(object): def __init__(self, driver, timeout, poll_frequency=POLL_FREQUENCY, ignored_exceptions=None):初始化时,需传入driver对...

2020-03-15 13:53:15 738

原创 selenium3源码解析Python篇(十八)-select源码解析

本章主要讲解对标准方法下select下拉框的相关操作目录结构:练习网站多选项源码解析:class Select(object): def __init__(self, webelement):首先init函数让我们在初始化入参时需传webelementif webelement.tag_name.lower() != "select":如果标签名不等于select则抛...

2020-03-15 01:08:12 374

原创 selenium3源码解析Python篇(十七)-webelement源码解析

此章为核心模块,内含对webelement元素的各种操作!!!表示DOM元素:通常,与文档交互的所有有趣操作都将通过此界面执行。所有方法调用都将进行新鲜度检查,以确保元素引用仍然有效。 这从本质上确定了元素是否仍附加到DOM。 如果此测试失败,则将引发StaleElementReferenceException,并且将来对该实例的所有调用将失败介绍下内置API:@property ...

2020-03-14 18:18:16 724

原创 selenium3源码解析Python篇(十六)-webdriver源码解析

此章为核心模块,内含对浏览器的各种操作!!!目录结构如下:class WebDriver(object):将命令通过WebDriver wire protocol协议发送到服务器session_id:由此webdriver启动和控制浏览器的会话idcapabilities:远端服务器以字典形式返回有效功能,并非所有服务器实现都将支持每种WebDriver功能。 因此,在描述用户请...

2020-03-14 00:19:36 1326

原创 selenium3源码解析Python篇(十五)-switch_to源码解析

首先介绍下frame标签是什么: 标签定义 frameset 中的一个特定的窗口(框架)。frameset 中的每个框架都可以设置不同的属性,比如 border、scrolling、noresize 等等。frame标签有三种:frame,iframe,frameset(不用切)我们来试一试了解之后,我们先介绍下本章目录结构:前面还是引入一些依赖包,判断一下str兼容版本,不做过多...

2020-03-12 22:53:24 540

原创 selenium3源码解析Python篇(十四)-errorhandler源码解析

本章主要是对selenium.common.exceptions通用异常类的补充目录结构:源码解析:18~46:导入selenium.common.exceptions异常类48~51:因python有2和3两个版本,此处做str的兼容class ErrorCode(object): """ Error codes defined in the WebDriver wir...

2020-03-12 20:37:20 371

原创 selenium3源码解析Python篇(十三)-remote_connection源码解析

remote_connection前面介绍过,是用来与webdriver server端进行http交互的目录结构:import base64 #转码import logging #日志import platform #平台import socket # 套接字import string import urllib3 #http交互try: #判断是python3还是pyth...

2020-03-11 01:32:44 799

原创 selenium3源码解析Python篇(十二)-command源码解析

目录如下:定义标准WebDriver命令的常量。 虽然这些常量本身没有任何意义,但是它们是 用于通过实现WebDriver的服务来封送命令 远程有线协议: https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol上面提到了一个JsonWireProtocol协议,他是这么定义的:JsonWireProtocol(以下...

2020-03-10 19:22:37 216

原创 selenium3源码解析Python篇(十一)-remote目录结构

本章主要介绍webdriver.remote包目录结构如下:command.py:定义标准WebDriver命令的常量errorhandler.py:WebDriver wire协议中定义的错误代码file_detector.py:用于标识字符序列是否表示文件的路径getAttribute.js:获取属性isDisplayed.js:判断元素是否显示mobile.py:定义移动端的...

2020-03-10 19:21:52 440

原创 selenium3源码解析Python篇(十)-touch_actions源码解析

本章目录结构: """ Generate touch actions. Works like ActionChains; actions are stored in the TouchActions object and are fired with perform(). """TouchActions为模拟移动端的操作,既然说工作方式与ActionChain...

2020-03-09 22:19:59 556 1

原创 selenium3源码解析Python篇(九)-proxy代理源码解析

本章会分为源码与实例两块进行讲解为什么会需要代理:严格来讲,selenium本身就是一款网络爬虫,那么当目标网站采取反扒策略时候,我们的矛,往往就是代理proxy我们来看下proxy.py的目录结构:...

2020-03-08 04:16:06 590

原创 selenium3源码解析Python篇(八)-by&keys源码解析

by.py & keys.py 部分 源码较少,所以用一章讲解by源码:class By(object): """ Set of supported locator strategies. """ ID = "id" XPATH = "xpath" LINK_TEXT = "link text" PARTIAL_LINK_TEX...

2020-03-07 01:33:05 402

原创 selenium3源码解析Python篇(七)-DesiredCapabilities源码解析

讲解这篇之前,我们先要看下什么是selenium grid:Selenium grid是用来分布式执行测试用例脚本的工具,由一个中心节点hub控制,分发到不同node上。那么DesiredCapabilities是什么:根据测试代码中配置的DesiredCapabilities参数,来决定将测试代码分发到哪台node上进行测试简单的例子:在此之前:我们需要下载对应selenium版本的...

2020-03-06 22:18:45 1899

原创 selenium3源码解析Python篇(六)-alert源码解析

讲alert之前,要先了解标准的js有三种弹窗,分别是:alert,confirm,prompt警告框alert:动手实践一下哈确认框confirm:动手实践一下哈提示框prompt:动手实践一下哈了解这些之后,我们来看下alert的源码部分我们可以用Alert类让我们的代码,有处理弹窗的能力先解析下第一部分,上代码:#Alert(driver).accept() 确定...

2020-03-05 01:49:55 309

原创 selenium3源码解析Python篇(五)-ActionsChains源码解析

先上个简单例子from selenium import webdriverfrom selenium.webdriver import ActionChainsdriver = webdriver.Chrome()driver.get("https://www.baidu.com")driver.find_element_by_id("kw").send_keys("123")sub...

2020-03-01 23:16:56 868

原创 selenium3源码解析Python篇(四)-common目录代码解析

selenium/webdriver/common -定义了webdriver所指定的通用能力:主要包括:键盘鼠标动作链行为控制alert处理html5支持移动端的触摸动作链……actions目录:主要实现键盘,鼠标,设备交互的能力html5目录:主要实现对于html5的支持actions_chains.py:定义了实现动作链能力alert.py:定义了实现al...

2020-03-01 00:28:02 471

原创 selenium3源码解析Python篇(三)-核心目录

首先实现一个简单实例:from selenium import webdriverdriver=webdriver.Chrome()driver.get(url)关于为什么可以从selenium模块中导入webdriver:由此可见:from selenium import webdriver - > 为对外导出webdriver包,而webdriver下的_init_.p...

2020-02-29 16:47:38 294

原创 selenium3源码解析Python篇(二)-异常类

本篇所讲的是关于selenium源码中的异常类通过源码我们可以得知selenium的异常有很多ErrorInResponseExceptionInvalidSwitchToTargetExceptionNoSuchFrameExceptionNoSuchWindowExceptionNoSuchElementExceptionNoSuchAttributeException……以...

2020-02-29 15:38:46 309

原创 selenium3源码解析Python篇(一)

关于selenium python端API目录结构common 定义了通用的异常类webdriver为核心实现目录展开:#定义了所有可能在webdriver代码中出现的异常common/exceptions.py#定义各个浏览器兼容的代码,用于支持不同的浏览器webdriver/androidwebdriver/blackberrywebdriver/chromewe...

2020-02-27 00:20:00 433

原创 Python修饰器实现及作用

定义一个函数fdef f(x): return x * x现在我们想在其中实现打印日志功能我们可以更改原函数def f(x): print(f.__name__) return x * x如果不改变原函数,有没有实现方式呢?有,定义一个高阶函数,我们知道函数可以指向一个变量,函数也可以返回一个函数,知道这些我们便可以实现增加打印日志的功能def log(a...

2019-05-23 14:15:00 2341

原创 Python高阶函数

函数与函数式的区别:函数是面向程序的基本单元,函数式更接近于数学计算计算与计算机的区别:计算机层次上,CPU执行的是代码指令,以及条件判断和逻辑执行,所以汇编语言是最接近与计算机的语言计算,指的是数学上的意义,越是抽象的计算,离计算机越远所以对应到计算机上,就是越接近计算机的语言,抽象程度越低,执行效率越高,越贴近计算,抽象程度越高,执行效率越低函数式是一种抽象程度很高的范式,特点就是...

2019-05-21 13:11:02 164 1

原创 selenium定位大全

xpath定位根据的是路径来定位,位置是唯一确定的css是根据元素的样式定位的相对来说css为样式选择器xpath为路径选择器xpath可以根据子类定位父类,css目前不可以(有个has但是在实验阶段)通过xpath定位,xpath定位有N种写法,这里列几个常用写法:(核心思想,根据层级定位,确保被定位的标签唯一性)dr.find_element_by_xpath("//[@id=‘...

2019-03-27 18:24:00 1151

原创 巧用抓包工具(Charles,Fiddler)的断点功能,改变前端与后端响应达到便捷测试的目的

以Charles抓包工具为例:首先抓到你请求的接口,在对应的接口上右键选择Breakpoints这样该接口每次传输数据的时候都会先暂停一次让你修改左上角如图这三个按钮对应的是 不做修改,终止,执行了解了这些之后,就可以根据要求,自行修改请求与响应的数据了,如不需要修改,点Cancel,修改完成点Execute提交即可...

2019-03-13 18:47:23 1169

原创 关于Python requests类 post方法多层字典的解决办法

post方法中,一个参数后面有多层字典如用postman的办法是key为参数 ,Value直接copy抓取的值便可以send成功Python request类 使用json类转化第二层字典example:有个form表单长这样:form = {“A”: {“a”: “a1”, “b”: “b1”}, “c”: “c1”}这时候需要做的是吧二层字典里的{“a”: “a1”, “b”: “b...

2019-03-10 12:41:15 2157 5

原创 关于selenium启动Chrome出现(Chrome正受到自动测试软件的监控)解决办法及自定义拓展

以往启动Chrome都直接webdriver.Chrome()就完事了,今天总结下去掉运行时不怎么讨人喜欢的bar~~webdriver.ChromeOptions()ChromeOptions是一个Chrome启动选项,这次需要调用的方法为add_argumentoption = webdriver.ChromeOptions()option.add_argument('disable-...

2018-12-23 17:48:02 2676

原创 Python+selenium环境搭建

Python+selenium环境搭建第一步:安装Python,访问Python官网:https://www.python.org/选择Downloads,然后根据自己系统选择下载。以windows用户为例:安装时候选择 Add Python3.6 to PATH9自动配置环境变量第二步:安装selenium,在命令行中输入 pip install selenium(如果提示pip不是...

2018-10-29 21:34:41 236

空空如也

空空如也

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

TA关注的人

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