基于python全局設(shè)置id 自動化測試元素定位過程解析
背景:
在自動化化測試過程中,不方便準(zhǔn)確獲取頁面的元素,或者在重構(gòu)過程中方法修改造成元素層級改變,因此通過設(shè)置id準(zhǔn)備定位。
一、python準(zhǔn)備工作:
功能:用自動化的方式進(jìn)行批量處理。 比如,你想要在大量的文本文件中執(zhí)行查找/替換,或者以復(fù)雜的方式對大量的圖片進(jìn)行重命名和整理。
語法用例:
#!/usr/bin/python //腳本語言的第一行,只對 Linux/Unix 用戶適用,用來指定本腳本用什么解釋器來執(zhí)行,即:調(diào)用 /usr/bin 下的 python 解釋器,推薦使用#!/usr/bin/env python 會去環(huán)境設(shè)置尋找 python 目錄,可以增強代碼的可移植性,不要寫死路徑 print "Hello, World!" // 輸出內(nèi)容 python script.py // 使用python變量調(diào)用腳本:#!/usr/bin/python 被忽略,等同于注釋 python3 hello.py // pyhton3版本執(zhí)行 ./script.py // 在python程序執(zhí)行:#!/usr/bin/python 指定解釋器的路徑
中文編碼:Python3.X 源碼文件默認(rèn)使用utf-8編碼,所以可以正常解析中文,無需指定 UTF-8 編碼。查看:python -V
#!/usr/bin/python # -*- coding: UTF-8 -*- //默認(rèn)的編碼格式是 ASCII 格式無法輸出漢字 print "你好,世界";
#!/usr/bin/python3 // python3版本 print("Hello, World!")
下載:Python官網(wǎng):https://www.python.org/
設(shè)置環(huán)境變量(一般自動設(shè)置cmd):
path=%path%;C:\Python //注意: C:\Python 是指Python的安裝目錄
下面幾個重要的環(huán)境變量,它應(yīng)用于Python:
變量名 | 描述 |
---|---|
PYTHONPATH | PYTHONPATH是Python搜索路徑,默認(rèn)我們import的模塊都會從PYTHONPATH里面尋找。 |
PYTHONSTARTUP | Python啟動后,先尋找PYTHONSTARTUP環(huán)境變量,然后執(zhí)行此變量指定的文件中的代碼。 |
PYTHONCASEOK | 加入PYTHONCASEOK的環(huán)境變量, 就會使python導(dǎo)入模塊的時候不區(qū)分大小寫. |
PYTHONHOME | 另一種模塊搜索路徑。它通常內(nèi)嵌于的PYTHONSTARTUP或PYTHONPATH目錄中,使得兩個模塊庫更容易切換。 |
擴展:
1.集成開發(fā)環(huán)境(IDE:Integrated Development Environment): PyCharm
2.對于 Python 學(xué)習(xí)的新手來說,安裝 Anaconda 包管理軟件 是一個不錯的選擇
3.cmd 美化參考:https://zhuanlan.zhihu.com/p/31904974
二、實際應(yīng)用:對指定元素添加id屬性
正則函數(shù):
re.match(pattern, string, flags=0) // 參數(shù)說明:正則規(guī)則,字符串,標(biāo)志位,如果字符串不符合正則表達(dá)式,則匹配失敗 re.search(pattern, string, flags=0) // 匹配整個字符串,直到找到一個匹配。
例:
#!/usr/bin/python3 import re line = "Cats are smarter than dogs"; // 貓比夠更小 matchObj = re.match( r'dogs', line, re.M|re.I) if matchObj: print ("match匹配 : ", matchObj.group()) // No match else: print ("No match!!") matchObj = re.search( r'dogs', line, re.M|re.I) if matchObj: print ("search匹配: ", matchObj.group()) // dogs else: print ("No match!!")
實例:
#!/usr/bin/python # -*- coding: UTF-8 -*- import os import re import random count=0 allbutton=set() def buttonid(m): return "<el-button id='kp_but_%s' " % str(round(random.random()*10000)) for root, dirs, files in os.walk(".\src", topdown=False): for name in files: if os.path.splitext(name)[-1] == ".vue": # print( os.path.splitext(name)[-1]) # print(name) filePath=os.path.join(root, name) file=open(filePath, mode='r+',encoding='UTF-8') content=file.read() searchObj=re.search( r'<el-button\s+', content, re.M|re.I) if searchObj: content = re.sub(r'<(el-button\s+)(?![a-zA-Z=\'\.;\%\-:"\s0-9@]*:?id=[a-zA-Z;=\'\.\%\-:"+$\s0-9@]*)',buttonid , content) count+=1 # allbutton.add(searchObj.group()) file=open(filePath, mode='w',encoding='UTF-8') lent=file.write(content) print(lent) else: print('None') # print(content) # for name in dirs: # print(os.path.join(root, name)) print(count)
使用說明:
1.將當(dāng)前文件test.py放在項目根目錄(與./src同級);
2.下載python執(zhí)行該文件即可:
python test.py
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python實現(xiàn)的基于優(yōu)先等級分配糖果問題算法示例
這篇文章主要介紹了Python實現(xiàn)的基于優(yōu)先等級分配糖果問題算法,涉及Python針對列表的遍歷、判斷、計算等相關(guān)操作技巧,需要的朋友可以參考下2018-04-04Python實現(xiàn)windows下模擬按鍵和鼠標(biāo)點擊的方法
這篇文章主要介紹了Python實現(xiàn)windows下模擬按鍵和鼠標(biāo)點擊的方法,涉及Python模擬實現(xiàn)鼠標(biāo)及鍵盤事件的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03pandas pd.cut()與pd.qcut()的具體實現(xiàn)
本文主要介紹了pandas pd.cut()與pd.qcut()的具體實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01Pytorch 如何加速Dataloader提升數(shù)據(jù)讀取速度
這篇文章主要介紹了Pytorch 加速Dataloader提升數(shù)據(jù)讀取速度的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05Python3.x+pyqtgraph實現(xiàn)數(shù)據(jù)可視化教程
這篇文章主要介紹了Python3.x+pyqtgraph實現(xiàn)數(shù)據(jù)可視化教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03