selenium---上传、下载文件
2019-06-21 本文已影响0人
小胖5920
上传文件webdriver没有提供方法的,因为上传文件需要打开window窗口,webdriver是无法对window的控件操作的,一般都有以下处理方法
普通上传 : input标签
插件上传:flash与javas或者ajax
1.如果是input标签,需要用sendKeys实现上传;
webDriver.findElement(By.name(“file”)).sendKeys("上传URL地址");
2.其他方法暂时先不做的哈
下载文件webdriver是可以进行操作的
这个是java代码写的
public class testChromeDownload {
WebDriver driver;
@Test
public void testOne() throws Exception {
//使用Chrome浏览器自动下载文件并保存到指定的文件路径
//或 使用Selenium更改Chrome默认下载存储路径
System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");//设置驱动的路径
DesiredCapabilities caps = setDownloadsPath();//更改默认下载路径
driver = new ChromeDriver(caps);
driver.manage().window().maximize();
driver.get("https://pypi.org/project/selenium/#files");//到目标网页
WebElement myElement = driver.findElement(By.xpath("//a[contains(text(),'selenium-3.13.0.tar.gz')]"));
Actions action = new Actions(driver);
myElement.click();//点击下载
Thread.sleep(10000);
}
//单独重构成一个方法,然后调用
public DesiredCapabilities setDownloadsPath() {
String downloadsPath = "D:\\dataSource\\outputReport\\Downloads";
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("download.default_directory", downloadsPath);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePrefs);
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability(ChromeOptions.CAPABILITY, options);
return caps;
}
@AfterClass
public void tearDown(){
driver.quit();
}
}
以下是Python代码:
encoding=utf-8
from selenium import webdriver
import unittest, time
class TestDemo(unittest.TestCase):
def setUp(self):
# 创建Chrome浏览器配置对象实例
chromeOptions = webdriver.ChromeOptions()
# 设定下载文件的保存目录为C盘的iDownload目录,
# 如果该目录不存在,将会自动创建
prefs = {"download.default_directory": "d:\\iDownload"}
# 将自定义设置添加到Chrome配置对象实例中
chromeOptions.add_experimental_option("prefs", prefs)
# 启动带有自定义设置的Chrome浏览器
self.driver = webdriver.Chrome(executable_path="e:\\chromedriver",\
chrome_options=chromeOptions)
def test_downloadFileByChrome(self):
url = "http://pypi.python.org/pypi/selenium"
# 访问将要下载文件的网址
self.driver.get(url)
# 找到要下载的文件链接页面元素,并点击进行下载
self.driver.find_element_by_partial_link_text\
("selenium-3.8.1.tar.gz").click()
# 等待100s,以便文件下载完成
time.sleep(20)
def tearDown(self):
# 退出IE浏览器
self.driver.quit()
if name == 'main':
unittest.main()