selenium---上传、下载文件

上传文件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 chromePrefs = new HashMap();
    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()

你可能感兴趣的:(selenium---上传、下载文件)