1. 程式人生 > >Python + Selenium自動化測試 -- 讀取ini配置檔案

Python + Selenium自動化測試 -- 讀取ini配置檔案

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)