ccs的优点:css相对xpath语法比xpath简洁,定位速度比xpath快css的缺点:css不支持用逻辑运算符来定位,而xpath支持。css定位语法形式多样,相对xpath比较难记。css定位建议多用,这个定位方式很强大,定位速度快且准确度高。至于难记,用熟了就好了,对勤快的人来说,这不是问题。CSS_selector常用符号:#表示id.表示class>表示子元素,层级1.通过id属性定位:find_element_by_css_selector
系统 2019-09-27 17:49:19 1714
采用Appium进行自动化的功能性测试最酷的一点是,你可以使用具有最适合你的测试工具的任何一门语言来写你的测试代码。大家选择最多的一个测试编程语言就是Python。使用Appium和Python为iOS和Android应用编写测试代码非常容易。在这篇博文中我们将详细讲解使用Appium下的Python编写的测试的例子代码对一个iOS的样例应用进行测试所涉及的各个步骤,而对Android应用进行测试所需的步骤与此非常类似。开始,先自https://githu
系统 2019-09-27 17:49:15 1714
前面介绍过vSQLAlchemy中的Engine和Connection,这两个对象用在rowSQL(原生的sql语句)上操作,而ORM(ObjectRelationalMapper)则是一种用面向对象的思维来操作表数据的技术。所谓ORM就是Python对象到数据表的一种映射关系。以前SQLAlchemy是怎么把Python对象和数据库中表里面的每条记录进行映射的呢?通过一个mapping函数先来看个例子:fromsqlalchemyimportTable,
系统 2019-09-27 17:48:55 1714
一篇关于STR和UNICODE的好文章整理下python编码相关的内容注意:以下讨论为Python2.x版本,Py3k的待尝试开始用python处理中文时,读取文件或消息,http参数等等一运行,发现乱码(字符串处理,读写文件,print)然后,大多数人的做法是,调用encode/decode进行调试,并没有明确思考为何出现乱码所以调试时最常出现的错误错误1Traceback(mostrecentcalllast):File"",line1,inUnico
系统 2019-09-27 17:46:15 1714
简介Python的序列(sequence)通常指一个可迭代的容器,容器中可以存放任意类型的元素。列表和元组这两种数据类型是最常被用到的序列,python内建序列有六种,除了刚刚有说过的两种类型之外,还有字符串、Unicode字符串、buffer对像和最后一种xrange对像,这几种都是不常使用的。本文讲解了列表推导式、切片命名、列表元素排序、列表元素分组的使用方法。学习了Python基本的列表操作后,学习这些进阶的操作,让我们写出的代码更加优雅简洁和pyt
系统 2019-09-27 17:38:41 1714
最近学习了python的一些服务器端编程,记录在此。发送get/post请求#coding:utf-8importhttplib,urllib#加载模块#urllib可以打开网站去拿#res=urllib.urlopen('http://baidu.com');#printres.headers#定义需要进行发送的数据params=urllib.urlencode({'param':'6'});#定义一些文件头headers={"Content-Type"
系统 2019-09-27 17:38:17 1714
前言最近在维护项目的python项目代码,项目使用了python的日志模块logging,设定了保存的日志数目,不过没有生效,还要通过contab定时清理数据。分析项目使用了logging的TimedRotatingFileHandler:#!/user/bin/envpython#-*-coding:utf-8-*-importloggingfromlogging.handlersimportTimedRotatingFileHandlerlog=log
系统 2019-09-27 17:38:11 1714
面向对象的编程语言在写大型程序的的时候,往往比面向过程的语言用起来更方便,安全。其中原因之一在于:类机制。类,对众多的数据进行分类,封装,让一个数据对象成为一个完整的个体,贴近现实生活,高度抽象化。但是,python对类的封装并不好,因为所有的属性和方法都是公开的,你可以随意访问或者写入,你可以在类的外部对类的属性进行修改,甚至添加属性。这的确让人感到不安。下面就来总结一下学习后的解决方案。1,使用2个下划线前缀隐藏属性或者方法。__xxx#!/usr/b
系统 2019-09-27 17:38:10 1714
模块安装:数据操作用到的模块pymysql,需要通过pipinstallpymysql进行安装。redis操作用的模块是redis,需要通过pipinstallredis进行安装。检验是否安装成功:进入到Python命令行模式,输入importpymysql、importredis,无报错代表成功;mysql操作方法如下:查询数据:fetchone、fetchmany(n)、fetchall()importpymysql#建立mysql连接,ip、端口、用
系统 2019-09-27 17:54:49 1713
本文实例讲述了Python实现生成密码字典的方法。分享给大家供大家参考,具体如下:key_data.py文件存放组成数据,可以随时扩充及简化。#coding=utf-8#!/usr/bin/pythondefyear():#返回字符串类型的年份列表year=range(1984,2018)#常用年份列表year_str=[]foryinyear:year_str.append(str(y))returnyear_strdefmonth_or_day(n):
系统 2019-09-27 17:54:41 1713
Python中,队列是线程间最常用的交换数据的形式。Queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外。创建一个“队列”对象importQueueq=Queue.Queue(maxsize=10)Queue.Queue类即是一个队列的同步实现。队列长度可为无限或者有限。可通过Queue的构造函数的可选参数maxsize来设定队列长度。如果maxsize小于1就表示队列长度无限。将一个值放入队列中q.put(10)调用队列对
系统 2019-09-27 17:53:36 1713
EventHandler在HDA中,要创建Python脚本,需要先选择一个事件处理器(EventHandle),他表示你要在什么时候执行你现在所创建的脚本命令OnCreated(在节点创建时,执行脚本)如选择此项编辑Python脚本,Python将会在节点创建时执行Python中的命令PythonModel(Python模式)这一项会使创建的脚本在使用过程中根据用户设置执行可以使用这一项给节点设置参数提示等功能OnDelete(在节点创建时执行脚本)Pyt
系统 2019-09-27 17:51:26 1713
Python这门解释性语言也有专门的线程模型,Python虚拟机使用GIL(GlobalInterpreterLock,全局解释器锁)来互斥线程对共享资源的访问,但暂时无法利用多处理器的优势。在Python中我们主要是通过thread和threading这两个模块来实现的,其中Python的threading模块是对thread做了一些包装的,可以更加方便的被使用,所以我们使用threading模块实现多线程编程。这篇文章我们主要来看看Python对多线程
系统 2019-09-27 17:50:59 1713
Python3快速入门(三)——Python3标准数据类型一、Python3标准数据类型Python3中有六种标准数据类型:A、Number(数字)B、String(字符串)C、List(列表)D、Tuple(元组)E、Set(集合)F、Dictionary(字典)Python3的六种标准数据类型中,Number(数字)、String(字符串)、Tuple(元组)是不可变的,List(列表)、Dictionary(字典)、Set(集合)是可变的。二、数字类
系统 2019-09-27 17:50:27 1713
目录一、线程定时器二、用法一、线程定时器线程定时器也是定时器,就是定时之后开启一条线程二、用法'''线程定时器,就是规定时间后开启一条线程'''deftask():print('线程执行了')time.sleep(2)print('线程结束了')t=Timer(4,task)#间隔时间,功能函数t.start()
系统 2019-09-27 17:49:44 1713