文件上传

WebDriver并没有提供对应的方法,可通过以下两种思路解决:·如果上传按钮是input标签,只要定位上传按钮,可优先尝试调用send_keys()方法输入文件路径;·如果需要打开系统窗口,即Window窗口添加本地文件,则可尝试借助AutoIt实现。

1.send_keys()方式上传

设计uploadfile.html页面,代码如下:

   

       

       

       

       

       

   

存放有一个名为Image.jpeg的图片,如果要在uploadfile.html页面上传该图片,则实现代码如下:

from seleniumimport webdriver

import time

driver = webdriver.Chrome()

driver.get("file:///D:/uploadfile.html")

time.sleep(5)

driver.find_element_by_xpath("//*[@id='file']").send_keys("d:\\Image.jpeg")

time.sleep(2)

driver.quit()

2.AutoIt方式上传

关于非input标签的文件上传,可借助AutoIt。AutoIt目前的版本是v3.3.14.*。AutoIt是一个使用类似BASIC脚本语言的免费软件,用于在Windows GUI(图形用户界面)中进行自动化操作。它利用模拟键盘按键、鼠标移动和窗口/控件的组合来实现自动化任务。

首先需要下载AutoIt,可进入https://www.autoitscript.com/site/autoit/downloads页面,在该页面中找到下载区域并单击下载按钮即可。

下载
安装选择第一个

AutoIt主要应用的功能有下面3个。

·Auto It Windows Info:元素定位器,用于帮助标识Windows控件信息;

·SciTE Script Editor:编辑器,用于编写AutoIt脚本;

·Compile Script to.exe用于将AutoIt生成exe执行文件。

根据AutoIt Windows Info所识别到的控件信息打开SciTEScript Editor,当AutoIt的脚本编写好后,将其保存为D:\ AutoitScript.au3下。

打开Compile Script to.exe工具,将前面保存的AutoitScript.au3脚本文件生成为exe可执行文件D:\AutoitScript.exe

编写自动化脚本,调用D:\ AutoitScript.exe实现AutoIt.html文件上传,代码如下:

1

你可能感兴趣的:(文件上传)