Ⅰ 怎么用python做自动化测试
这里以web自动化测试为例,简单介绍一下如何使用python进行web自动化测试,主要用到selenium这个框架,实验环境win10+python3.6,主要内容如下:
1.首先,安装selenium框架,这个直接在cmd窗口输入命令“pipinstallselenium”就行,如下,安装非常快:
2.安装完成后,还需要安装浏览器驱动程序,不然直接运行程序会报错,以谷歌浏览器chrome为例,需要下载chromedriver驱动程序,如下,这里chromedriver的版本必须要与自己平台浏览器的版本匹配:
下载完成后,是一个zip压缩包,里面就一个chromedriver.exe文件,这里需要将这个文件复制到python安装目录下,如下:
3.最后,我们就可以进行selenium框架测试了,测试代码如下,非常简单,创建一个webdriver,如果能正常打开对应网页,则说明selenium安装成功:
之后就可以直接定位相关元携余素,进行web自动化测试了,主要方法如下(共有8种),辩洞滚分别是id、name、classname、tagname、linktext、partiallinktext、xpath和cssselector,这里可以自行测试,相关资料非常丰富:
至此,我们就完成了pythonweb自动化测试框架selenium的安装和简单使用。总的来说,整个过程非常简单,只要你有一定的python基础,熟悉一下上面的安装过程,很快就能搭建好本地selenium自动化测试框架,网上也颤芹有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。
Ⅱ 怎样查看python安装路径
方法如下:
一、linux查看python安装位置。
有时我们需要查看python的安装位置,好安装第三方库,linux可以先python进入python cmd,然后输入【import sys】【print sys.path】,即可打印所有python路径。
二、想要查看ubuntu中安装的python路径。
方法一:whereis python
方法二:which python
五、sys.executable是当前Python解释器(或者其他Python实现)的路径去掉后面一个路径分隔符(Windows下是'')后的部分即可>>> import sys>>> path = sys.executable>>> print pathC:Python25pythonw.exe>>> folder = path[ 0 : path.rfind( os.sep ) ]>>> print folderC:Python25>>>。
Ⅲ 如何用Python实现查找"/"目录下的文件夹或文件,感谢
给你各相对来说容易理解的哈
import os
name=raw_input('filename:') #在这里输入你的查找值
a=os.listdir('/') #把所有/目录下的文件,目录存放入a
if name in a: #如果查找值在/目录下,进行进一步判断
if os.path.isdir(name): #判断是否为目录
print 'dir'
elif os.path.isfile(name) and os.pathislink(name): #符号连接即是文件又是link所以双重判断
print 'link'
elif os.path.isfile(name): #判断是否文件
print 'file'
else: #linux上文件类型多,不符合上面三种打印0ther
print 'other'
else: #不存在打印‘not exist’
print 'not exist'
Ⅳ 如何利用Python爬虫从网页上批量获取想要的信息
稍微说一下背景,当时我想研究蛋白质与小分子的复合物在空间三维结构上的一些规律,首先得有数据啊,数据从哪里来?就是从一个涵盖所有已经解析三维结构的蛋白质-小分子复合物的数据库里面下载。这时候,手动一个个去下显然是不可取的,我们需要写个脚本,能从特定的网站选择性得批量下载需要的信息。python是不错的选择。
import urllib #python中用于获取网站的模块
import urllib2, cookielib
有些网站访问时需要cookie的,python处理cookie代码如下:
cj = cookielib.CookieJar ( )
opener = urllib2.build_opener( urllib2.HttpCookieProcessor(cj) )
urllib2.install_opener (opener)
通常我们需要在网站中搜索得到我们需要的信息,这里分为二种情况:
1. 第一种,直接改变网址就可以得到你想要搜索的页面:
def GetWebPage( x ): #我们定义一个获取页面的函数,x 是用于呈递你在页面中搜索的内容的参数
url = 'http://xxxxx/xxx.cgi?&' + ‘你想要搜索的参数’ # 结合自己页面情况适当修改
page = urllib2.urlopen(url)
pageContent = page.read( )
return pageContent #返回的是HTML格式的页面信息
2.第二种,你需要用到post方法,将你搜索的内容放在postdata里面,然后返回你需要的页面
def GetWebPage( x ): #我们定义一个获取页面的函数,x 是用于呈递你在页面中搜索的内容的参数
url = 'http://xxxxx/xxx' #这个网址是你进入搜索界面的网址
postData = urllib.urlencode( { 各种‘post’参数输入 } ) #这里面的post参数输入需要自己去查
req= urllib2.Request (url, postData)
pageContent = urllib2.urlopen (req). read( )
return pageContent #返回的是HTML格式的页面信息
在获取了我们需要的网页信息之后,我们需要从获得的网页中进一步获取我们需要的信息,这里我推荐使用 BeautifulSoup 这个模块, python自带的没有,可以自行网络谷歌下载安装。 BeautifulSoup 翻译就是‘美味的汤’,你需要做的是从一锅汤里面找到你喜欢吃的东西。
import re # 正则表达式,用于匹配字符
from bs4 import BeautifulSoup # 导入BeautifulSoup 模块
soup = BeautifulSoup(pageContent) #pageContent就是上面我们搜索得到的页面
soup就是 HTML 中所有的标签(tag)BeautifulSoup处理格式化后的字符串,一个标准的tag形式为:
hwkobe24
通过一些过滤方法,我们可以从soup中获取我们需要的信息:
(1) find_all ( name , attrs , recursive , text , **kwargs)
这里面,我们通过添加对标签的约束来获取需要的标签列表, 比如 soup.find_all ('p') 就是寻找名字为‘p’的 标签,而soup.find_all (class = "tittle") 就是找到所有class属性为"tittle" 的标签,以及soup.find_all ( class = re.compile('lass')) 表示 class属性中包含‘lass’的所有标签,这里用到了正则表达式(可以自己学习一下,非常有用滴)
当我们获取了所有想要标签的列表之后,遍历这个列表,再获取标签中你需要的内容,通常我们需要标签中的文字部分,也就是网页中显示出来的文字,代码如下:
tagList = soup.find_all (class="tittle") #如果标签比较复杂,可以用多个过滤条件使过滤更加严格
for tag in tagList:
print tag.text
f.write ( str(tag.text) ) #将这些信息写入本地文件中以后使用
(2)find( name , attrs , recursive , text , **kwargs )
它与 find_all( ) 方法唯一的区别是 find_all() 方法的返回结果是值包含一个元素的列表,而 find() 方法直接返回结果
(3)find_parents( ) find_parent( )
find_all() 和 find() 只搜索当前节点的所有子节点,孙子节点等. find_parents() 和 find_parent() 用来搜索当前节点的父辈节点,搜索方法与普通tag的搜索方法相同,搜索文档搜索文档包含的内容
(4)find_next_siblings() find_next_sibling()
这2个方法通过 .next_siblings 属性对当 tag 的所有后面解析的兄弟 tag 节点进代, find_next_siblings() 方法返回所有符合条件的后面的兄弟节点,find_next_sibling() 只返回符合条件的后面的第一个tag节点
(5)find_previous_siblings() find_previous_sibling()
这2个方法通过 .previous_siblings 属性对当前 tag 的前面解析的兄弟 tag 节点进行迭代, find_previous_siblings()方法返回所有符合条件的前面的兄弟节点, find_previous_sibling() 方法返回第一个符合条件的前面的兄弟节点
(6)find_all_next() find_next()
这2个方法通过 .next_elements 属性对当前 tag 的之后的 tag 和字符串进行迭代, find_all_next() 方法返回所有符合条件的节点, find_next() 方法返回第一个符合条件的节点
(7)find_all_previous() 和 find_previous()
这2个方法通过 .previous_elements 属性对当前节点前面的 tag 和字符串进行迭代, find_all_previous() 方法返回所有符合条件的节点, find_previous()方法返回第一个符合条件的节点
具体的使用方法还有很多,用到这里你应该可以解决大部分问题了,如果要更深入了解可以参考官方的使用说明哈!
Ⅳ 自学Python:查看文件夹及子目录所有文件路径
使用路径对象glob()函数和rglob()函数,可以查看指定路径下的文件和子文件夹,两者的区别在于,glob()函数只进行一级查找,而rglob()函数会进行多级查找。
from pathlib import Path
p = Path('d:\\文件夹\\')
r = p.glob('*')
for i in r:
print(i) #显示glob()函数的结果
print('-' * 25) #这里是分割线
r = p.rglob('*')
for i in r:
print(i)#显示rglob()函数的结果
查看对应结果如下:
d:\11\11.txt
d:\11\r.mp3
d:\11\t.mp3
d:\11\tp1000
d:\11\文件夹
-------------------------
d:\11\11.txt
d:\11\r.mp3
d:\11\t.mp3
d:\11\tp1000
d:\11\文件夹
d:\11\文件夹\文档.txt
________________END______________
Ⅵ 求高手分析一段python的代码 关于网站扫描根目录下的一些压缩包文件 我看不懂求分析
没有仔细看这个代码。这的确算得是黑客手段了。但是也有可能是人家网站自己的维护程序。
主要是根据网站上的一些备份习惯,先猜出网站的zip文件的文件名。然后再将这个zip文件下载下来。这样就避免了一个网页一个网页的去下载。
但是如果网站里设置了zip文件不能下载。则这个下载方法是行不通的。
这里excavate_zip,从字面意思看应该是处理zip中的网页。到底是下载呢,还是到根目录去扫描。从权限从安全管理看。
除非网站设置了统一的跨服务器的维护权限(应该有这个权限),否则是没有办法扫描目录的。所以从这个角度看。这个程序应该是网站自己的维护程序。
那么下载文件呢,通常也是有严格权限管理的。直接下这种ZIP真还没有试验过。网站通常用目录有访问权限设置。除非是维护人员自己留下的后门,否则也不可能。
另外既然你拿出来问了,就应该不是黑客程序。
Ⅶ python--目录操作
一、os.getcwd()
获取当前工作目录,即当前Python脚本工作的目录路径。
二、os. chdir(path)
改变当前脚本工作目录;相当于shell下的cd命令。
三、os.pardir
返回当前目录的父目录('..')
四、获取当前使用的操作系统类型(其中 ‘nt’ 是 windows,’posix’ 是linux 或者 unix)。
五、os.mkdir(path [, mode=0777])
生成单级目录;相当于linux中的mkdir dirname。参数mode表示生成的目录的权限,默认是超级权限,也就是0777。如果重复创建,会报错
六、os.makedirs(path [, mode=0777])
可生成多层递归目录,父目录如果不存在,递归生成。参数mode表示生成的目录的权限,默认是超级权限,也就是0777。
七、os.removedirs(path)
若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依次类推。
八、os.rmdir(path)
删除单级空目录,若目录不为空则无法删除,会报错;相当Linux中的rmdir dirname。
九、os.listdir(path)
列出指定目录下的所有文件和子目录,包括隐藏文件或目录,并以列表形式返回。
十、os.remove(filePath)
删除一个指定的文件,参数filePath表示文件所在的路径。
注意:该方法只能删除文件,不能删除目录。
十一、os.rename(oldname, newname)
重命名文件/目录。
十二、os.access(path, mode)
输出文件权限模式。
十三、os.chmod(path, mode)
修改文件的权限。
十四、os.walk(top, topdown=True, onerror=None, followlinks=False)
➢top:表示需要遍历的目录树的路径。
➢topdown的默认值是“True”,表示首先返回目录树下的文件,然后遍历目录树下的子目录。值设为False时,则表示先遍历目录树下的子目录,返回子目录下的文件,最后返回根目录下的文件。
➢onerror的默认值是“None”,表示忽略文件遍历时产生的错误。如果不为空,则提供一个自定义函数提示错误信息后继续遍历或抛出异常中止遍历。
➢该函数返回一个列表,列表中的每一个元素都是一个元组,该元组有3个元素,分别表示每次遍历的路径名,目录列表和文件列表。
➢默认情况下,os.walk 不会遍历软链接指向的子目录,若有需要请将followlinks设定为true
十五、os.path.split(path)
将path分割成目录和文件名(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在),并存于元组中返回。
十六、os.path.exists(path)
判断path是否存在,如果存在返回True,否则返回False。
十七、os.path.isfile(path)
判断path是否是文件,如果是返回True,否则返回False。
十八、os.path.isdir(path)
判断path是否是目录,如果是目录返回True,否则返回False。
十九、os.path.getsize(name)
获得文件大小,如果name是目录返回结果是0L或者4096L;如果name代表的目录或文件不存在,则会报WindowsError异常。
二十、os.path.join(a, *p)
连接两个或更多的路径名,中间以“\”分隔,如果所给的参数中都是绝对路径名,那先给的绝对路径将会被丢弃。
二十一、os.path.getatime(filename)
返回文件的最后访问时间,返回的是时间戳。
二十二、os.path.getctime(filename)
以时间戳的形式返回文件或目录的创建时间,在Unix系统上是文件最近更改的时间,在Windows上是文件或目录的创建时间。
1.基础题:
检验给出的路径是否是一个文件:os.path.isfile("D:\\test.txt")
检验给出的路径是否是一个目录:os.path.isdir("D:\\test.txt")
判断是否是绝对路径:os.path.isabs("D:\\test.txt")
检验给出的路径是否真地存在:
2.返回一个路径的目录名和文件名 :os.listdir("D:\\")
3.分离文件名与扩展名 :os.path.splitext("D:\\test.txt")
4.找出某个目录下所有的文件,并在每个文件中写入“gloryroad” :
>>> for files in os.walk("D:\\test"):
... print(files)
...
('D:\\test', [], ['a.txt', 'b.txt', 'test.txt', 'test1.txt'])
>>> with open("D:\\test\\a.txt","w+") as f:
... f.write("gloryroad")
5.如果某个目录下文件名包含txt后缀名,则把文件后面追加写一行“被我找到了!”
6. 命题练习:
1) 一个目录下只有文件(自己构造),拷贝几个文件(手工完成)
2 )用listdir函数获取所有文件,如果文件的创建时间是今天,那么就在文件里面写上文件的路径、文件名和文件扩展名
3) 如果不是今天创建(获取文件的创建时间,并转化为时间格式,判断是否今天),请删除
4 )计算一下这个程序的执行耗时
7.删除某个目录下的全部文件
8.统计某个目录下文件数和目录个数
9.使用程序建立一个多级的目录,在每个目录下,新建一个和目录名字一样的txt文件
10. 查找某个目录下是否存在某个文件名
11. 用系统命令拷贝文件
12.输入源文件所在路径和目标目录路径,然后实现文件拷贝功能
13.遍历某个目录下的所有图片,并在图片名称后面增加
14、遍历指定目录下的所有文件,找出其中占用空间最大的前3个文件
15、过滤py源码中的#注释,另存为文件result.py,并执行result.py,断言是否执行成功
16、文件访问,提示输入数字 N 和文件 F, 然后显示文件 F 的前 N 行.
17、从命令行接受1个路径如:c:\a\b\c\1.py, 实现1个函数创建目录a\b\c,创建文件1.py,实现1个函数删除已创建的目录及文件
18、有一个ip.txt,里面每行是一个ip,实现一个函数,ping 每个ip的结果,把结果记录存到ping.txt中,格式为ip:0或ip:1 ,0代表ping成功,1代表ping失败
19、实现DOS命令执行功能,接受输入命令并执行,然后把执行结果和返回码打印到屏幕
20、文件访问
访问一存在多行的文件,实现每隔一秒逐行显示文本内容的程序,每次显示文本文件的 5行, 暂停并向用户提示“输入任意字符继续”,按回车键后继续执行,直到文件末尾。
显示文件的格式为:[当前时间] 一行内容,比如:[2016-07-08 22:21:51] 999370this is test