Selenium:在Google Chrome中上传文件

dre*_*boy 8 python selenium webdriver

有没有办法在Google Chrome上传文件,因为Selenium RC"attach_file"仅支持*Firefox?任何建议或变通方法都非常感谢.

nil*_*esh 5

如果您使用的是Webdriver,则要上传文件,只需使用“ sendKeys”键入文件路径。您需要“跳过”单击浏览按钮的部分,该按钮会打开一个对话框以选择文件。适用于我的Java版本如下所示,

WebElement inputFilePath = driver.findElement(By.id("filepath"));
inputFilePath.sendKeys("/absolute/path/to/my/local/file");
Run Code Online (Sandbox Code Playgroud)


Ewy*_*ato 3

上传文件通常是 POST 请求,因此您实际上可以不使用 Selenium 来上传文件;除非您的网站需要 cookie,否则您需要首先使用 webdriver.get_cookies() 重建 cookie

一个简单的例子:

# required package:
#   http://pypi.python.org/pypi/MultipartPostHandler/0.1.0

import MultipartPostHandler, urllib2, cookielib

cookies = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies),
                              MultipartPostHandler.MultipartPostHandler)

path_to_file = r"abc.zip"

open_file = open(path_to_file,"rb")
param = { "file": open_file }
req = opener.open("http://www.yoursite.com/uploadfile", param)
open_file.close()
Run Code Online (Sandbox Code Playgroud)