在Selenium項目實踐中,為處理頁面不同的link,button等頁面元素,最好把這些頁面元素和對應的Xpath寫入設定檔,本文試圖建立一個自訂的ConfigParser,處理設定檔的解析。
雖然是很小的一個類,但也從中學習到很多東東。
主要分三步:
1. 得到設定檔的路徑
一般來說檔案解析類會放在commonfunction目錄下,而設定檔會放在同級的configuration目錄下
在Python 中獲得當前路徑,使用os.getcwd()
或者os.path.abspath(os.curdir),print os.path.abspath('.')
要獲得上級目錄的路徑使用os.path.abspath('..')。
這樣我們在使用os.path.join方法就可以得到設定檔所在目錄。
2. 使用get方法得到每個section的option,這裡參考了limodou多年前的一篇文章。
3. 調用
在這裡學會了如何匯入上層目錄中模組或其他目錄(平級)下的模組,引用之前要先把上層目錄加到sys.path中
import sys
sys.path.append("..")
完整代碼如下,寫的有點爛,請各位多指教。
代碼
#!/usr/bin/env python
#coding=utf-8
import os
import sys
from ConfigParser import ConfigParser, NoOptionError, NoSectionError
class Parser(ConfigParser):
def __init__(self, inifile, encoding=None):
ConfigParser.__init__(self)
self.inifile=inifile
self.encoding = encoding
if inifile:
self.read(inifile)
def get(self, sec, option, default=None):
"""Get an option value for given section or return default"""
if self.has_option(sec, option):
return ConfigParser.get(self, sec, option, raw=0, vars=None)
else:
return default
def get_file_path(self, file):
path = os.path.join(os.path.abspath(".."), "configuration")
return os.path.join(path, file)