无人工干预地自动上传附件
2018-06-18 00:30:35来源:未知 阅读 ()
<html> <head> <title>上传文件</title> <meta http-equiv = "Content-Type" content = "text/html; charset = utf-8"> </head> <body> <form enctype = "multipart/form-data" action = "parse_file.jsp" method="post"> <p>Browse for a file to upload:</p> <input id = "file" name="file" typr="file"></input> <br/><br/> <input type="submit" id="filesubmit" value="SUBMIT"></input> </form> </body> </html>
1、使用webdriver的send_keys方法上传文件
#!usr/bin/env python #-*- coding:utf-8 -*- """ @author: sleeping_cat @Contact : zwy24zwy@163.com """ #无人工干预地自动上传附件 #使用webdriver的send_keys方法上传文件 from selenium import webdriver import unittest import time import traceback from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.common.exceptions import TimeoutException,NoSuchElementException class TestDemo(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() def test_uploadFileBySendKeys(self): url = "e:\\uploadFile.html" self.driver.get(url) try: wait = WebDriverWait(self.driver,10,0.2)#创建一个显示等待对象 wait.until(EC.element_to_be_clickable((By.ID,'file')))#显示等待判断被测试页面上的上传文件按钮是否处于可被单击状态 except TimeoutException as e: print(traceback.print_exc()) except NoSuchElementException as e: print(traceback.print_exc()) except Exception as e: print(traceback.print_exc()) else: fileBox = self.driver.find_element_by_id('file') fileBox.send_keys('c:\\test.txt')#在文件上传框的路径框里输入要上传的文件路径C://test.txt time.sleep(3) fileSubmitButton = self.driver.find_element_by_id('filesubmit') fileSubmitButton.click() def tearDown(self): self.driver.quit() if __name__ == '__main__': unittest.main()
2、模拟键盘操作,实现上传文件
#!usr/bin/env python #-*- coding:utf-8 -*- """ @author: sleeping_cat @Contact : zwy24zwy@163.com """ #无人工干预地自动上传附件 #模拟键盘操作,实现上传文件 from selenium import webdriver import unittest import time import traceback import win32clipboard as w import win32api import win32con from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.common.exceptions import TimeoutException,NoSuchElementException #用于设置剪贴板内容 def setText(aString): w.OpenClipboard() w.EmptyClipboard() w.SetClipboardData(win32con.CF_UNICODETEXT,aString) w.CloseClipboard() #键盘按键映射字典 VK_CODE = { 'enter':0x0D, 'Ctrl':0x11, 'V':0x56} #键盘键按下 def keyDown(keyName): win32api.keybd_event(VK_CODE[keyName],0,0,0) #键盘键抬起 def keyUp(keyName): win32api.keybd_event(VK_CODE[keyName],0,win32con.KEYEVENTF_KEYUP,0) class TestDemo(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() def test_uploadFileByKeyboard(self): url = 'e://uploadFile.html' self.driver.get(url) try: wait = WebDriverWait(self.driver,10,0.2) wait.until(EC.element_to_be_clickable((By.ID,'file'))) except TimeoutException as e: print(traceback.print_exc()) except NoSuchElementException as e: print(traceback.print_exc()) except Exception as e: print(traceback.print_exc()) else: setText('c:\\test.txt')#将即将要上传的文件名及路径设置到剪贴板中 self.driver.find_element_by_id('file').click() time.sleep(3) #模拟键盘按下Ctrl+V keyDown('Ctrl') keyDown('V') #模拟键盘释放Ctrl+V keyUp('V') keyUp('Ctrl') time.sleep(1) keyDown('enter') keyUp('enter') time.sleep(2) fileSubmitButton = self.driver.find_element_by_id('filesubmit') time.sleep(2) fileSubmitButton.click() def tearDown(self): self.driver.quit() if __name__ == '__main__': unittest.main()
3、使用第三方工具AutoIt上传文件
#!usr/bin/env python #-*- coding:utf-8 -*- """ @author: sleeping_cat @Contact : zwy24zwy@163.com """ #无人工干预地自动上传附件 #使用第三方工具AutoIt上传文件 from selenium import webdriver import unittest,time,os,traceback from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.common.exceptions import TimeoutException,NoSuchElementException class TestDemo(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() def test_uploadFileByAutoIt(self): url = 'e:\\uploadFile.html' self.driver.get(url) try: wait = WebDriverWait(self.driver,10,0.2) wait.until(EC.element_to_be_clickable((By.ID,'file'))) except TimeoutException as e: print(traceback.print_exc()) except NoSuchElementException as e: print(traceback.print_exc()) except Exception as e: print(traceback.print_exc()) else: self.driver.find_element_by_id('file').click() os.system('d:\\iDownload\\test.exe')#通过Python提供的os模块的system方法执行生成的test.exe文件 time.sleep(3) fileSubmitButton = self.driver.find_element_by_id('filesubmit') fileSubmitButton.click() wait.until(EC.title_is('文件上传成功')) def tearDown(self): self.driver.quit() if __name__ == '__main__': unittest.main()
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python 之 前端开发(form标签、单选框、多选框、file上传文 2019-08-13
- 利用python自动生成verilog模块例化模板 2019-08-13
- 一篇文章教你使用Python自动赚取支付宝积分,网友:发家致富 2019-07-24
- 用python写一个简单的文件上传 2019-07-24
- python自动化测试之DDT数据驱动 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash