第4章 Selenium2-java WebDriver API (三)

简介: 4.12  上传文件  4.12.1  sendKeys实现上传  html Upfile    java代码: package upfile; import java.

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();
    }



}

 

 

相关文章
|
1天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
9 2
|
8天前
|
缓存 监控 Java
如何运用JAVA开发API接口?
本文详细介绍了如何使用Java开发API接口,涵盖创建、实现、测试和部署接口的关键步骤。同时,讨论了接口的安全性设计和设计原则,帮助开发者构建高效、安全、易于维护的API接口。
29 4
|
17天前
|
Java API 数据处理
探索Java中的Lambda表达式与Stream API
【10月更文挑战第22天】 在Java编程中,Lambda表达式和Stream API是两个强大的功能,它们极大地简化了代码的编写和提高了开发效率。本文将深入探讨这两个概念的基本用法、优势以及在实际项目中的应用案例,帮助读者更好地理解和运用这些现代Java特性。
|
20天前
|
Web App开发 Java
使用java操作浏览器的工具selenium-java和webdriver下载地址
【10月更文挑战第12天】Selenium-java依赖包用于自动化Web测试,版本为3.141.59。ChromeDriver和EdgeDriver分别用于控制Chrome和Edge浏览器,需确保版本与浏览器匹配。示例代码展示了如何使用Selenium-java模拟登录CSDN,包括设置驱动路径、添加Cookies和获取页面源码。
|
23天前
|
Java 大数据 API
别死脑筋,赶紧学起来!Java之Steam() API 常用方法使用,让开发简单起来!
分享Java Stream API的常用方法,让开发更简单。涵盖filter、map、sorted等操作,提高代码效率与可读性。关注公众号,了解更多技术内容。
|
1月前
|
存储 Java API
如何使用 Java 中的 API 更改 PDF 纸张大小
如何使用 Java 中的 API 更改 PDF 纸张大小
40 11
|
1月前
|
机器学习/深度学习 算法 Java
通过 Java Vector API 利用 SIMD 的强大功能
通过 Java Vector API 利用 SIMD 的强大功能
37 10
|
1月前
|
分布式计算 Java 大数据
大数据-147 Apache Kudu 常用 Java API 增删改查
大数据-147 Apache Kudu 常用 Java API 增删改查
26 1
|
2月前
|
Java API C++
Java 8 Stream Api 中的 peek 操作
本文介绍了Java中`Stream`的`peek`操作,该操作通过`Consumer&lt;T&gt;`函数消费流中的每个元素,但不改变元素类型。文章详细解释了`Consumer&lt;T&gt;`接口及其使用场景,并通过示例代码展示了`peek`操作的应用。此外,还对比了`peek`与`map`的区别,帮助读者更好地理解这两种操作的不同用途。作者为码农小胖哥,原文发布于稀土掘金。
111 9
Java 8 Stream Api 中的 peek 操作
|
2月前
|
数据采集 Web App开发 测试技术
使用Selenium与WebDriver实现跨浏览器自动化数据抓取
在网络爬虫领域,Selenium与WebDriver是实现跨浏览器自动化数据抓取的利器。本文详细介绍了如何利用Selenium和WebDriver结合代理IP技术提升数据抓取的稳定性和效率。通过设置user-agent和cookie来模拟真实用户行为,避免被网站检测和阻止。文章提供了具体的代码示例,展示了如何配置代理IP、设置user-agent和cookie,并实现了跨浏览器的数据抓取。合理的参数配置能有效减少爬虫被封禁的风险,提高数据抓取效率。
280 6
使用Selenium与WebDriver实现跨浏览器自动化数据抓取

热门文章

最新文章