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

 

第4章 Selenium2-java WebDriver API (三)的更多相关文章

  1. python+selenium自动化软件测试(第2章):WebDriver API

    2.1 操作元素基本方法 前言前面已经把环境搭建好了,从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可 ...

  2. selenium2.0(WebDriver) API

    1.1  下载selenium2.0的包 官方download包地址:http://code.google.com/p/selenium/downloads/list 官方User Guide:  h ...

  3. 《Java从入门到失业》第二章:Java环境(三):Java命令行工具

    2.3Java命令行工具 2.3.1编译运行 到了这里,是不是开始膨胀了,想写一段代码来秀一下?好吧,满足你!国际惯例,我们写一段HelloWorld.我们在某个目录下记事本,编写一段代码如下: 保存 ...

  4. selenium2(WebDriver) API

    selenium2(WebDriver) API 作者:Glen.He出处:http://www.cnblogs.com/puresoul/  1.1  下载selenium2.0的包 官方downl ...

  5. java JDK8 学习笔记——第11章 线程和并行API

    第11章 线程与并行API 11.1 线程 11.1.1 线程 在java中,如果想在main()以外独立设计流程,可以撰写类操作java.lang.Runnable接口,流程的进入点是操作在run( ...

  6. [selenium webdriver Java]常用api

    1. 获取元素文本 WebElement类的getText()方法返回元素的innerText属性.所以元素里如果有子节点一样也会被返回出来.如下所示 public class GetText { @ ...

  7. Selenium2+Python:Webdriver API速记手册

    由于web自动化常常需要控制浏览器行为和操作页面元素,相关函数又比较多,于是再此记下一份Webdriver API查阅文档以备不时之需. 参考:虫师<Selenium2自动化测试实战>,和 ...

  8. java基础(三章)

    java基础(三章) 一.基本if结构 1.流程图 l  输入输出 l  判断和分支 l  流程线 1.1              简单的if条件判断 if(表达式){            //表 ...

  9. java中的数据类型,运算符,字符串,输入输出,控制流,大数值,数组; 《java核心技术卷i》 第三章:java基本程序结构;

    <java核心技术卷i> 第三章:java基本程序结构: 每次看书,去总结的时候,总会发现一些新的东西,这次对于java的数组有了更深的了解: java中的数据类型,运算符,字符串,输入输 ...

随机推荐

  1. ----一个roadmap----

    在课上了解到了学web前端三个基础,HTML.CSS.JS 从HTML开始,逐步学习CSS.JS 大致写了一个roadmap(应该是roadmap喔 就是这样,以后可能会来更错或者更新 对没错我来更错 ...

  2. java29

    1.封装小练习--长方形 创建长方形类 使用getset方法 利用返回值方法计算长方形的面积,周长. 保证长方形的长宽为整数 2.继承小练习--猫狗 当父类中有构造器时,子类也要有构造器,并且要求设置 ...

  3. C语言基础课第二次作业

    一.  题目7-1 统计学生成绩 1.实验代码 #include<stdio.h> int main(void) { int i,grade,n; ,b=,c=,d=,e=; scanf( ...

  4. 2019.02.12 bzoj5294: [Bjoi2018]二进制(线段树)

    传送门 题意简述: 给出一个长度为nnn的二进制串. 你需要支持如下操作: 修改每个位置:1变0,0变1 询问对于一个区间的子二进制串有多少满足重排之后转回十进制值为333的倍数(允许前导000). ...

  5. 6.8 lambda方法 6.9 枚举类

    6.9枚举 对于对象个数有限的类可以用枚举类来避免创建对象的随意性. 枚举类关键字enum,是一种特殊的类:构造器只能用private修饰,枚举类的所有实例在第一行举出(系统默认用public sta ...

  6. Paper | 块分割信息 + 压缩视频质量增强

    目录 1. 亮点 2. 网络 3. Mask 及其融合 4. 结论 论文:Enhancing HEVC Compressed Videos with a Partition-Masked Convol ...

  7. nginx安装以及调优

    目录: 1.安装nginx 2.配置nginx 3.调优nginx 4.性能测试 ps:为了方便,文档使用docker容器来操作的. 1.安装nginx 1.1 启动容器.download nginx ...

  8. C++中的return和exit区别

    在main函数中,return和exit经常混用,两者的一个区别:return会执行statck unwinding,而exit不会.如果触发了信号,exit也同样不会做stack unwinding ...

  9. ssm框架中处理json格式的数据步骤

    1.导架包 <!--处理json--> <dependency> <groupId>com.fasterxml.jackson.core</groupId&g ...

  10. zabbix学习

    snmp 默认监控upd161端口 tcp 也有 [root@bogon ~]# netstat -nlutp|grep snmp tcp 0 0 127.0.0.1:199 0.0.0.0:* LI ...