UI自動化頁面須要選擇上傳文件

UI自動化頁面上傳文件,百度查的時候說有4中方法,簡便的方法是安裝SendKeys,可是百度說這個只支持python2.7的css

個人python版本是3.7的,目前還只碰到了非<input type="file"...>的狀況,因此用pywin32模塊,等遇到其餘狀況再補充python

前提:安裝pywin32:pip install pywin32web

解析:# 文件上傳框,定位工具Winspy瀏覽器

# 上傳窗口  dialog(win32gui.FindWindo)    一級python2.7

# 子窗口:打開按鈕  button (win32gui.FindWindowEx)  四級工具

# 子窗口  ComboBoxEx32 (win32gui.FindWindowEx)  二級測試

# 子窗口  ComboBox (win32gui.FindWindowEx)    三級ui

# 子窗口:文件路徑輸入框  edit(win32gui.FindWindowEx)  四級spa



from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import
win32con,win32gui
driver=webdriver.Chrome()
driver.get('http://xxx')
步驟1:先定位到頁面上的上傳按鈕,好比個人頁面是「選擇頭像」
tmp0='#uploadUserImgAddr'
e1=driver.find_element_by_css_selector(tmp0)
ActionChains(driver).move_to_element(el).click().perform()
ActionChains(driver).release()
time.sleep(5) #等待時間只是爲了看效果

步驟2:下面一段代碼能夠直接照搬,只須要修改下面的2個地方便可
dialog = win32gui.FindWindow("#32770", "打開") # 一級窗口 ‘打開窗口’ #修改1:打開的瀏覽器:
Chrome是"打開",FireFox是"文件上傳",ie是"選擇要加載的文件"
ComboBoxEx32 = win32gui.FindWindowEx(dialog, 0, "ComboBoxEx32", None) # 二級

ComboBox = win32gui.FindWindowEx(ComboBoxEx32, 0, "ComboBox", None) # 三級
edit = win32gui.FindWindowEx(ComboBox, 0, "Edit", None) # 四級
button = win32gui.FindWindowEx(dialog, 0, "Button", None) # 四級
# 往文件名編輯框中輸入文件路徑
# 上傳操做
win32gui.SendMessage(edit, win32con.WM_SETTEXT, None, r'E:\文件\測試圖片\bug圖片\人頭像\人頭像\1.jpg') #修改2:上傳的文件路徑
win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button) # 點擊打開按鈕
time.sleep(10) #這裏加等待時間是由於頭像上傳的時候會很慢,不加的話繼續運行下面的腳本時就會報錯,加個緩衝時間
相關文章
相關標籤/搜索