實現無人工干預的自動上傳附件(二)

2022-08-03 05:18:11 字數 2728 閱讀 9198

模擬鍵盤操作,實現檔案上傳

用於測試的html**:

上傳檔案title>

head>

browse for a file to upload: p>

form>

body>

html>

實戰**:

#encoding=utf-8

from selenium importwebdriver

importunittest

importtime,traceback

importwin32clipboard as w

importwin32api,win32con

from selenium.webdriver.support.ui importwebdriverwait

from selenium.webdriver.common.by importby

from selenium.webdriver.support importexpected_conditions as ec

from selenium.common.exceptions importtimeoutexception, nosuchelementexception

#用於設定剪下板內容

defsettext(astring):

w.openclipboard()

w.emptyclipboard()

w.setclipboarddata(win32con.cf_unicodetext, astring)

w.closeclipboard()

#鍵盤按鍵對映字典

vk_code =

#鍵盤鍵按下

defkeydown(keyname):

win32api.keybd_event(vk_code[keyname], 0, 0, 0)

#鍵盤鍵抬起

defkeyup(keyname):

win32api.keybd_event(vk_code[keyname], 0, win32con.keyeventf_keyup, 0)

classtestdemo(unittest.testcase):

defsetup(self):

#啟動瀏覽器

self.driver = webdriver.ie(executable_path = "d:\\iedriverserver")

deftest_uploadfilebykeyboard(self):

url = ""

#訪問自定義網頁

self.driver.get(url)

try:

#建立乙個顯示等待物件

wait = webdriverwait(self.driver, 10, 0.2)

#顯示等待判斷被測試頁面上的上傳檔案按鈕是否處於可被點選狀態

wait.until(ec.element_to_be_clickable((by.id, 'file')))

excepttimeoutexception, e:

#捕獲timeoutexception異常

printtraceback.print_exc()

exceptnosuchelementexception, e:

#捕獲nosuchelementexception異常

printtraceback.print_exc()

exceptexception, e:

#捕獲其他異常

printtraceback.print_exc()

else:

#將即將要上傳的檔名及路徑設定到剪下板中

#查詢頁面上id屬性值為「file」的檔案上傳框,

#並點選調出選擇檔案上傳框

self.driver.find_element_by_id("file").click()

time.sleep(2)

#模擬鍵盤按下ctrl + v組合鍵

keydown("ctrl")

keydown("v")

#模擬鍵盤釋放ctrl + v組合鍵

keyup("v")

keyup("ctrl")

time.sleep(1)

#模擬鍵盤按下回車鍵

keydown("enter")

#模擬鍵盤釋放回車鍵

keyup("enter")

#暫停檢視上傳的檔案

time.sleep(2)

#找到頁面上id屬性值為「filesubmit」的檔案提交按鈕物件

filesubmitbutton = self.driver.find_element_by_id("filesubmit")

#單擊提交按鈕,完成檔案上傳操作

filesubmitbutton.click()

#因為檔案上傳需要時間,所以這裡可以新增顯示等待場景,判斷檔案上傳成功後,頁面是否跳轉到檔案上傳成功的頁面。

#通過ec.title_is()方法判斷跳轉後的頁面的title值是否符合期望,如果匹配將繼續執行後續**

#wait.until(ec.title_is(u"檔案上傳成功"))

defteardown(self):

#退出ie瀏覽器

self.driver.quit()

if __name__ == '__main__':

unittest.main()

實現無人工干預的自動上傳附件(一)

使用webdriver的send keys方法上傳檔案 用於演示的測試html 1 2 3 上傳檔案title 4 5 head 6 7 8 browse for a file to upload p 9 10 11 12 13 form 14 body 15 html 例項 encoding ut...

python3 6實現自動上傳附件操作

使用send keys方法上傳乙個檔案福建,並進行提交操作,以下是完整 首頁自己建立兩個被測網頁 1.uploadfile.html 上傳檔案 browse for a file to upload 2.parse file.html 檔案上傳成功 檔案上傳成功 import unittest fr...

PhpStorm連線伺服器並實現自動上傳功能

連線伺服器 選單欄找到 工具 tools deployment 部署 confinguration 配置 點加號 新增一台伺服器,填寫名稱,選擇型別為www.cppcns.comsftp,點選確定。按下圖提示,填寫伺服器資訊。填寫完伺服器鏈結資訊,點選 test sftp connection 測試...