在寫一個android手機的自動化測試,用appium+python3,跟室友討論擬定了一個框架,在寫2個通用的簡單模塊時,遇到問題.
同一個目錄下2個模塊,driver.py(用於獲取app 句柄) 引用 read_conf.py (用於讀取配置文件,如appium連接手機時需要的desired_capability),read_conf.py 里面要傳遞保存desired_capability的配置文件,直接執行read_conf.py沒問題,但是在driver.py調用read_conf.py就說找不到section,其實是找不到配置文件,因為路徑不對:
pycharm :ctrl+shift+F10 運行driver.py
pycharm :ctrl+shift+F10 運行read_conf.py
后來修改了read_conf.py 模塊中獲取配置文件路徑的方式.就可以了.
事實上,用下圖的方法是比較好,這就設計到獲取當前文件路徑的2個方法的區別:os.path.dirname(os.path.realpath(file)) 和 os.getcwd()的區別:
https://blog.csdn.net/xiaofei0859/article/details/51305218
os.getcwd()獲取的當前最外層調用的腳本路徑,即getPath所在的目錄也可描述為起始的執行目錄,A調用B,起始的是A,那么獲取的就是A所在的目錄路徑。
os.path.dirname(os,path.realname(file)):指的是,獲得你剛才所引用的模塊 所在的絕對路徑,__file__為內置屬性。
其實我最主要的問題是因為:driver.py本來是在另外的目錄創建並運行過,后來直接拖動到common目錄,導致getcwd()看到的目錄是指調用的目錄,跟實際文件存在的目錄不一樣.為了避免這種情況,當你確切想要的是文件放的目錄,那么請用os.path.realpath()