《手把手教你》系列進階篇之3-python+ selenium自動化測試 – python幾種騷操作你都知道嗎?(詳細教程)
- 2019 年 12 月 20 日
- 筆記
1. 簡介
這篇文章主要是給小夥伴或者童鞋們介紹和分享 python幾種騷操:讀取配置文件、獲取根目錄的相對路徑、獲取系統時間和格式化時間顯示、字符串切割等等操作。為後邊的自動化框架打下一個結實的基礎。
2. Python讀取配置文件內容
本文來介紹下Python中如何讀取配置文件。任何一個項目,都涉及到了配置文件和管理和讀寫,Python支持很多配置文件的讀寫,這裡我們就介紹一種配置文件格式的讀取數據,叫ini文件。Python中有一個類ConfigParser支持讀ini文件。
2.1 新建一個文件夾
首先我們緊接着前邊的內容,在項目下,新建一個文件夾,叫config,然後在這個文件夾下新建一個file類型的文件:config.ini
2.1.1 代碼實現:

2.1.2 參考代碼:
# this is config file, only store browser type and server URL [browserType] #browserName = Firefox browserName = Chrome #browserName = IE [testServer] URL = https://www.baidu.com #URL = http://www.google.com
2.2 獲取當前項目的根目錄的相對路徑
然後百度搜索一下,python中如何獲取當前項目的根目錄的相對路徑這裡採用:
os.path.dirname(os.path.abspath('.'))
2.3 新建測試類
最後,在另外一個包下新建一個測試類,用來測試讀取配置文件是否正常。
2.3.1 代碼實現:

2.3.2 參考代碼:
# coding=utf-8? # 1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行 # 2.注釋:包括記錄創建時間,創建人,項目名稱。 ''' Created on 2019-12-13 @author: 北京-宏哥 QQ交流群:705269076 Project: 《手把手教你》系列進階篇之3-python+ selenium自動化測試 - python基礎掃盲 ''' # 3.導入模塊 import configparser import os class TestReadConfigFile(object): def get_value(self): root_dir = os.path.dirname(os.path.abspath('.')) # 獲取項目根目錄的相對路徑 print (root_dir) config = configparser.ConfigParser() file_path = os.path.dirname(os.path.abspath('.')) + '/config/config.ini' config.read(file_path) browser = config.get("browserType", "browserName") url = config.get("testServer", "URL") return(browser,url) # 返回的是一個元組 trcf = TestReadConfigFile() print (trcf.get_value())
2.3.3 運行結果:
你可以試試更改config.ini的內容,看看測試打印出來是不是你更改的東西,在配置文件一般#表示注釋,你想要哪行配置代碼起作用,你就把前面的#去除,並且在注釋其他同一個區域。在ini文件中 中括號包裹起來的部分叫section,了解一下就可以。
修改成如下圖:

運行代碼後,控制台打印如下圖的結果

3. Python獲取系統時間和格式化時間顯示
前面一篇文章介紹了,Python如何讀取config.ini文件,還有如何獲取當前項目根目錄相對路徑寫法。在實際項目的開發,獲取項目根路徑的相對路徑寫法是很有必要的,不要去是絕對路徑。因為,你自己開發的一個項目,如果拷貝到別的電腦里,發現運行不了,需要更改很多文件的路徑,那是不是很失敗。本篇文章介紹如何去獲取和打印格式化系統時間,我們很多時候,看到一些日誌,前面都會記錄年月日,時分秒,甚至毫秒,然後才是日誌描述。這一篇文章,介紹時間獲取和格式化時間,就是為了後面,如何寫一個簡單的日誌類做鋪墊的。
在PyCharm下的一個包,右鍵,新建一個get_time.py文件,輸入一下代碼:
這裡提醒一個小技巧:在輸入導入包的時候,有些包你沒有安裝,不是系統自帶的,可能會遇到紅色下劃線,你需要鼠標懸停在這個紅色下劃線,然後在這行的左側有一個小燈泡,鼠標點擊這個小燈泡,一般會有import this xxx 或者install xxx,根據提示來導入包或者安裝第三方插件。
3.1 代碼實現:

3.2 參考代碼:
# coding=utf-8? # 1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行 # 2.注釋:包括記錄創建時間,創建人,項目名稱。 ''' Created on 2019-12-13 @author: 北京-宏哥 QQ交流群:705269076 Project: 《手把手教你》系列進階篇之3-python+ selenium自動化測試 - python基礎掃盲 ''' # 3.導入模塊 import time class GetTime(object): def get_system_time(self): print (time.time()) # time.time()獲取的是從1970年到現在的間隔,單位是秒 print (time.localtime()) new_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) # 格式化時間,按照 2019-12-13 13:46:32的格式打印出來 print (new_time) gettime = GetTime() gettime.get_system_time()
3.3 運行結果:
運行代碼後,控制台打印如下圖的結果

!!!你自己試試如何打印出這樣的效果: 20191213134750的效果。答案自己在文章最後查找。
4. Python中字符串切割操作
本文來介紹Python中字符串切割操作,在Python中自帶的一個切割方法split(),這個方法不帶參數,就默認按照空格去切割字段,如果帶參數,就按照參數去切割。為了演示切割效果,我們用百度搜索一個關鍵字,然後去找一共找到了多個結果的數字。
例如,百度搜索「selenium」,查看找到了多少個結果,我們需要單獨摘取出這個數字。

相關腳本代碼如下:
4.1 代碼實現:

4.2 參考代碼:
# coding=utf-8? # 1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行 # 2.注釋:包括記錄創建時間,創建人,項目名稱。 ''' Created on 2019-12-13 @author: 北京-宏哥 QQ交流群:705269076 Project: 《手把手教你》系列進階篇之3-python+ selenium自動化測試 - python基礎掃盲 ''' # 3.導入模塊 import time from selenium import webdriver class GetSubString(object): def get_search_result(self): driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(8) driver.get('https://www.baidu.com') driver.find_element_by_id('kw').send_keys('selenium') time.sleep(1) driver.find_element_by_id('su').click() time.sleep(1) search_result_string = driver.find_element_by_xpath("//*/div[@class='nums']").text print (search_result_string) new_string = search_result_string.split('約')[1] # 第一次切割得到 xxxx個,[1]代表切割右邊部分 print (new_string) last_result = new_string.split('個')[0] # 第二次切割,得到我們想要的數字 [0]代表切割參照參數的左邊部分 print (last_result) getstring = GetSubString() getstring.get_search_result()
4.3 運行結果:
運行代碼後,控制台打印如下圖的結果

5. 小結
5.1答案揭曉
5.1.1參考代碼
首先把上面的提問在這裡把答案公布一下,其實很簡單的,只需要修改一處地方即可以實現宏哥說的那種效果,聰明的你答對了沒???
# coding=utf-8? # 1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行 # 2.注釋:包括記錄創建時間,創建人,項目名稱。 ''' Created on 2019-12-13 @author: 北京-宏哥 QQ交流群:705269076 Project: 《手把手教你》系列進階篇之3-python+ selenium自動化測試 - python基礎掃盲 ''' # 3.導入模塊 import time class GetTime(object): def get_system_time(self): print (time.time()) # time.time()獲取的是從1970年到現在的間隔,單位是秒 print (time.localtime()) new_time = time.strftime('%Y%m%d%H%M%S', time.localtime()) # 格式化時間,按照 2017-04-15 13:46:32的格式打印出來 print (new_time) gettime = GetTime() gettime.get_system_time()
5.1.2 代碼運行效果
將上述代碼運行後看一下是不是宏哥說的那種效果

好了,今天的分享就到這裡吧!!!謝謝各位的耐心閱讀。