zoukankan      html  css  js  c++  java
  • selenium测试(Java)--下载文件(十六)

    下载文件需要在Firefox 的profile属性中配置一些参数,如下面的代码:

    package com.test.download;
    
    import java.io.File;
    
    import org.openqa.selenium.By;
    import org.openqa.selenium.JavascriptExecutor;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.openqa.selenium.firefox.FirefoxProfile;
    
    public class DownloadTest {
    
        public static void main(String[] args) {
    
            FirefoxProfile profile = new FirefoxProfile();
    
            // 可以在Firefox浏览器地址栏中输入about:config来查看属性
            // 设置下载文件放置路径,注意如果是windows环境一定要用\,用/不行
            String path = "D:\10-selenium\workspace\SeleniumTest\src\com\test\download\down";
            String downloadFilePath = path + "\d.exe";
            File file = new File(downloadFilePath);
            if (file.exists()) {
                file.delete();
            }
    
            // 配置响应下载参数
            profile.setPreference("browser.download.dir", path);// 下载路径
            profile.setPreference("browser.download.folderList", 2);// 2为保存在指定路径,0代表默认路径
            profile.setPreference("browser.download.manager.showWhenStarting", false);// 是否显示开始
            // 禁止弹出保存框,value是文件格式,如zip文件
            profile.setPreference("browser.helperApps.neverAsk.saveToDisk",
                    "application/zip,text/plain,application/vnd.ms-excel,text/csv,text/comma-separated-values,application/octet-stream,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.wordprocessingml.document");
    //关于类型:可以参考http://www.w3school.com.cn/media/media_mimeref.asp
    
            WebDriver driver = new FirefoxDriver(profile);
            driver.get("file:///D:/10-selenium/workspace/SeleniumTest/src/com/test/download/download.html");
            driver.manage().window().maximize();
    
            driver.findElement(By.linkText("下载")).click();
    
            waitTime(3000);
            String js_exist = "alert("download successfully")";
            String js_not_exist = "alert("download unsuccessfully")";
    
            if (file.exists()) {
                ((JavascriptExecutor) driver).executeScript(js_exist);
            } else {
                ((JavascriptExecutor) driver).executeScript(js_not_exist);
            }
    
            waitTime(5000);
            // driver.quit();
    
        }
    
        static public void waitTime(int time) {
    
            try {
                Thread.sleep(time);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
    }

    使用到的页面例子:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>download</title>
    </head>
    <body>
    <a href="d.exe">下载</a>
    </body>
    </html>

    测试代码结构:

  • 相关阅读:
    屏蔽2003:在系统启动时至少有一个服务或驱动程序产生错误
    C#中有关string和byte[]转换的问题
    如何控制winform程序只能打开一个呢?
    ArrayList的使用方法【转载】
    ASP.NET中ajaX学习记录
    C#去除字符串空格的几种方法【转载】
    C# 中2,10,16进制及其ASCII码之间转化
    vc++下char数组赋值乱码问题
    c#关机时自动退出程序
    Android入门前言(一)之Android应用开发入门五问 (转自:http://blog.csdn.net/android_tutor/)
  • 原文地址:https://www.cnblogs.com/xinxin1994/p/7289581.html
Copyright © 2011-2022 走看看