第4章 Selenium2-java WebDriver API (三)

4.12  上传文件

 4.12.1  sendKeys实现上传

 html

<html>
 <head>
 </head>
 <body>
  <div class="row_fluid">
   <div class="span10 well">
   <h3>Upfile</h3>
   <input type="file" name="file"/>
   </div>
  </div> 
 </body> 
</html>

 java代码:

package upfile;

import java.io.File;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Upfile {
    public static void main(String[] args) throws InterruptedException {
        System.out.println("start");
        WebDriver driver = new FirefoxDriver();
        File file = new File("C:/Users/Administrator/Desktop/upfile.html");
        String filePath = file.getAbsolutePath();
        driver.get(filePath);
        
        driver.findElement(By.name("file")).sendKeys("D:\BugReport.txt");
        Thread.sleep(2000);
        driver.close();
    }

}

4.14  下载文件

package upfile;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;

public class Download {
   public static void main(String[] args) {
    FirefoxProfile firefox=new FirefoxProfile();
    //browser.download.folderList  设置成0代表下载到浏览器默认下载路径,设置成2则可以保存到指定目录。
    firefox.setPreference("browser.download.folderList", 2);
    // browser.download.manager.showWhenStarting 是否显示开始;Ture为显示,Flase为不显示。
    firefox.setPreference("browser.download.manager.showWhenStarting", false);
    //browser.download.dir 用于指定所下载文件的目录。os.getcwd() 函数不需要传递参数,用于返回当前的目录。
    firefox.setPreference("browser.download.dir", "d:\Program Files");
    // browser.helperApps.neverAsk.saveToDisk 指定要下载页面的Content-type值,“application/octet-stream”为文件的类型。  
    // HTTP Content-type常用对照表:http://tool.oschina.net/commons
    firefox.setPreference("browser.helpApps.neverAsk.saveToDisk", "application/octet-stream");
    
    WebDriver driver=new FirefoxDriver(firefox);
    driver.get("http://pan.baidu.com/share/link?shareid=3048009203&uk=375774229#list/path=%2F");
    driver.findElement(By.xpath(".//*[@id='shareqr']/div[2]/div[2]/div/ul[1]/li[1]/div/span[1]")).click();
    driver.findElement(By.xpath(".//*[@id='bd-main']/div/div[1]/div/div[2]/div/div/div[2]/a[2]/span/span")).click();
    driver.findElement(By.xpath(".//*[@id='_disk_id_3']/span")).click();
      
      
}
}

4.15  操作Cookie

  

package com.cy.selenium;
import java.util.Set;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Cookie {
    
    public static void main(String[] args) {
        WebDriver  driver=new FirefoxDriver();
        driver.get("http://www.baidu.com/");
         /*WebDriver操作cookie的方法::
           ·getCookies()            获得所有cookie信息。
           ·getCookieNamed(String name)   返回字典的key为“name”的cookie信息。
           ·addCookie(cookie dict)         添加cookie。“cookie_dict”指字典对象,必须有name 和value 值。
           ·deleteCookieNamed(String name)     删除cookie信息。“name”是要删除的cookie的名称;“optionsString”是该cookie的选项,目前支持的选项包括“路径”,“域”。
           ·deleteAllCookies()      删除所有cookie信息。
           */
         Set<org.openqa.selenium.Cookie> coo=driver.manage().getCookies();
        System.out.println(coo);
    }

}

4.16  调用JavaScript

package com.cy.selenium;

import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.JavascriptExecutor;

public class JavaScript {
    public static void main(String[] args) throws InterruptedException {
        System.out.println("===============");
         WebDriver driver=new FirefoxDriver();
             driver.manage().window().setSize(new Dimension(700, 600));
             driver.get("http://www.baidu.com/");
             driver.findElement(By.id("kw")).sendKeys("JavaScript");
             driver.findElement(By.id("su")).click();
             Thread.sleep(2000);
             // 拖动滚动条  window.scrollTo(左边距,上边距);
            ((JavascriptExecutor)driver).executeScript("window.scrollTo(100,450);");
         
             Thread.sleep(3000);
             System.out.println("end");
             
             driver.quit();
    }



}

 

原文地址:https://www.cnblogs.com/hellokitty1/p/6349813.html