【經驗分享】Python實現UI自動化難點問題

TestingGDR發表於2018-11-28

問題描述:

1.執行自動化C:\Users\當前使用者\AppData\Local\Temp 目錄產生大量臨時檔案導致自動化執行異常。

應用場景:

  1. 所有Windows機器的預設配置。

原因:

  1. 編譯執行Python指令碼產生.pyc檔案和.pyd檔案。
  2. 通過Selenium下的Webdriver呼叫瀏覽器驅動程式(如chromedriver.exe)在沒有正常退出的情況下產生的臨時記憶體檔案沒有被釋放。
  3. 作業系統本身使用產生的臨時檔案。

分析:

  1. Python語言特性+作業系統特性。

解決方案:

  1. 通過更改預設臨時檔案目錄,然後建立瀏覽器程式前之前清除。
  2. 在F盤建立TEMP資料夾。
  3. 更改環境變數TEMP和TMP(包含使用者變數和系統變數都要更改),值為F:\TEMP。
  4. 重啟電腦。
  5. Python程式碼os.popen('RD %TEMP% /S/Q')。
  6. Python程式碼os.popen('MKDIR %TEMP%')。

問題描述:

  1. 《object》《/object》上傳檔案不能send_keys方法。

應用場景:

  1. 所有除了《input》上傳檔案的地方。

原因:

  1. 彈出本地路徑選擇框,相當於flash,Selenium類庫本身暫不支援操作flash。

分析:

  1. 點選觸發檔案系統選擇框的按鈕後,由於焦點自動聚焦在檔案路徑輸入框,這時模擬鍵盤輸入事件,輸入所需檔案的路徑即可。

解決方案:

  1. options.add_argument('--user-data-dir=C:/Users/kats/AppData/Local/Google/Chrome/User Data') 用於解決點選按鈕後提示“允許使用flash”,原理是手動指定chrome配置檔案,前提是chrome設定中已設定在執行flash之前不再詢問。
  2. 利用PyUserInput中的pykeyboard模擬鍵盤輸入事件,原理是keyboard會根據當前聚焦的元素位置輸入,然後直接輸入檔案所在的路徑+檔名。

結語:

跟大家推薦一個學習資料分享群:175317069,裡面大牛已經為我們整理好了許多的學習資料,有自動化,介面,效能等等的學習資料!人生是一個逆水行舟的過程,不進則退,我們們一起加油吧!

相關文章