Python + Selenium自動化測試 -- 讀取ini配置檔案
阿新 • • 發佈:2019-02-12
Python支援多種配置檔案的讀寫,本文僅介紹其中一種–ini檔案的讀寫。Python中configparser【注意c小寫】類支援讀寫ini檔案。步驟如下:
1、 在專案下新建一資料夾,名為config,在此資料夾下新建一file型別的檔案:config.ini,檔案內容如下:
; 代表註釋
; []包裹起來的部分叫section
[browserType]
browserName = Firefox
;browserName = Chrome
;browserName = IE
[testServer]
URL = https://www.baidu.com
;URL = http://www.goole.com
2、在另一個包下新建一測試類,測試讀取配置檔案是否正常。
# configparser 注意是小寫c,支援讀寫ini檔案
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('.' )) + '/package/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())
執行結果如下:
【注】在本專案中,ini檔案有中文註釋沒有報錯,但之後封裝框架時,ini檔案有中文報一下錯誤:
UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xad in position 4: illegal multibyte sequence
此時只需要在ini檔案第一行加入如下:
# -*- coding:utf-8 -*-
然後在讀取檔案時修改為:
# 但是對於有BOM(如Windows下用記事本指定為utf-8)的檔案,需要使用 utf-8-sig, 使用utf-8沒辦法。
# 【我沒試過,參考連結[ini檔案讀取中文](http://blog.csdn.net/liujingqiu/article/details/77677256)】
# 對於我寫的程式碼 此處是utf-8-sig 或者 utf-8 都可以
config.read(file_path,encoding="utf-8")
寫此程式碼時突然想起普通讀寫檔案內容,順便回憶一下:
with open(os.path.dirname(os.path.abspath('.')) + '/package/config.ini') as fileObject:
contents = fileObject.read()
print(contents)