MAC,python自動化上傳文件的方法(模擬鍵盤法)

最近在寫webUI的自動化測試,遇到文件上傳的情況,這裏採用了模擬鍵盤的方法,但是在模擬鍵盤輸入時,遇到了一個問題,就是文件路徑開頭的斜槓/輸入不進去,

例如file賦值爲‘/User/zhangmiaomiao/Doucument/test.jpg’,文件路徑開頭的斜槓/沒有輸入進去,只輸入了User/zhangmiaomiao/Doucument/test.jpg,原因不明,這裏提供一個臨時的解決方案,希望知道原因的小夥伴可以分享一下。步驟如下:

  1. 首先定位到上傳文件按鈕(selenium定位元素)
  2. 鍵盤模擬查找文件
  3. 輸入文件路徑
  4. 點擊回車,找到文件
  5. 點擊回車,確定上傳

按照下面方法模擬鍵盤輸入文件file時,文件路徑開頭的斜槓/沒有輸入進去。

from pykeyboard import PyKeyboard
from pymouse import PyMouse
import pyperclip
import time

#模擬鍵盤找到要上傳的文件,進行上傳    
    def upload_file(self, file):
        #定位上傳按鈕
        self.click(self.salon_banner_loc)
        k = PyKeyboard()
        m = PyMouse()
        #模擬快捷鍵Command+Shift+G
        k.press_keys(['Command', 'Shift', 'G'])
        #輸入文件路徑
        x_dim, y_dim = m.screen_size()
        m.click(x_dim // 2, y_dim // 2, 1) 
        k.type_string(file)
        #前往文件
        k.press_keys(['Return'])
        #點擊確定進行上傳
        k.press_keys(['Return'])

 

這裏提供一個解決方案,首先模擬鍵盤複製粘貼,先將斜槓/輸入進去,然後再輸入全路徑,注意需加上等待時間,代碼如下:

from pykeyboard import PyKeyboard
from pymouse import PyMouse
import pyperclip
import time
   
 def upload_file(self, file):
        self.click(self.salon_banner_loc)
        k = PyKeyboard()
        m = PyMouse()
        filepath = '/'
        k.press_keys(['Command', 'Shift', 'G'])
        x_dim, y_dim = m.screen_size()
        m.click(x_dim // 2, y_dim // 2, 1)
        # 複製文件路徑開頭的斜槓/
        pyperclip.copy(filepath)
        # 粘貼斜槓/
        k.press_keys(['Command', 'V'])
        # 輸入文件全路徑進去
        k.type_string(file)
        k.press_key('Return')
        time.sleep(2)
        k.press_key('Return')
        time.sleep(2)

這樣圖片就上傳成功啦~

可是,爲什麼用第一種方法斜槓/輸入不進去呢。。。。。。求大佬指點~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章