Ⅰ 怎麼用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