美文网首页
selenium---上传、下载文件

selenium---上传、下载文件

作者: 小胖5920 | 来源:发表于2019-06-21 10:59 被阅读0次

    上传文件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()

    相关文章

      网友评论

          本文标题:selenium---上传、下载文件

          本文链接:https://www.haomeiwen.com/subject/asopfctx.html