第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();
} }
第4章 Selenium2-java WebDriver API (三)的更多相关文章
- python+selenium自动化软件测试(第2章):WebDriver API
2.1 操作元素基本方法 前言前面已经把环境搭建好了,从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可 ...
- selenium2.0(WebDriver) API
1.1 下载selenium2.0的包 官方download包地址:http://code.google.com/p/selenium/downloads/list 官方User Guide: h ...
- 《Java从入门到失业》第二章:Java环境(三):Java命令行工具
2.3Java命令行工具 2.3.1编译运行 到了这里,是不是开始膨胀了,想写一段代码来秀一下?好吧,满足你!国际惯例,我们写一段HelloWorld.我们在某个目录下记事本,编写一段代码如下: 保存 ...
- selenium2(WebDriver) API
selenium2(WebDriver) API 作者:Glen.He出处:http://www.cnblogs.com/puresoul/ 1.1 下载selenium2.0的包 官方downl ...
- java JDK8 学习笔记——第11章 线程和并行API
第11章 线程与并行API 11.1 线程 11.1.1 线程 在java中,如果想在main()以外独立设计流程,可以撰写类操作java.lang.Runnable接口,流程的进入点是操作在run( ...
- [selenium webdriver Java]常用api
1. 获取元素文本 WebElement类的getText()方法返回元素的innerText属性.所以元素里如果有子节点一样也会被返回出来.如下所示 public class GetText { @ ...
- Selenium2+Python:Webdriver API速记手册
由于web自动化常常需要控制浏览器行为和操作页面元素,相关函数又比较多,于是再此记下一份Webdriver API查阅文档以备不时之需. 参考:虫师<Selenium2自动化测试实战>,和 ...
- java基础(三章)
java基础(三章) 一.基本if结构 1.流程图 l 输入输出 l 判断和分支 l 流程线 1.1 简单的if条件判断 if(表达式){ //表 ...
- java中的数据类型,运算符,字符串,输入输出,控制流,大数值,数组; 《java核心技术卷i》 第三章:java基本程序结构;
<java核心技术卷i> 第三章:java基本程序结构: 每次看书,去总结的时候,总会发现一些新的东西,这次对于java的数组有了更深的了解: java中的数据类型,运算符,字符串,输入输 ...
随机推荐
- day0-功能自动化的前提
自动化不是万能的,不是什么产品都适合自动化测试,那些产品适合自动化测试? 只要满足下面三个条件就可以进行自动化测试 一:软件需求变动不频繁 二:项目周期较长 自动化测试框架的设计.脚本的开发与调试需要 ...
- C++ 提取网页内容系列之四正则
标 题: C++ 提取网页内容系列之四作 者: itdef链 接: http://www.cnblogs.com/itdef/p/4173833.html 欢迎转帖 请保持文本完整并注明出处 将网页内 ...
- 腾讯云的基本配置(centos 7.1)及mysql的使用
因为想在微信上开发些东西,所以租用了一个月的腾讯云. 推荐选择的镜像是centos7.1.这个系统的选择和本地操作系统基本没有关系. 首先要登录到云主机中,用户名是root,密码是当初自己设置的那一个 ...
- SpringMVC 学习 十一 springMVC控制器向jsp或者别的控制器传递参数的四种方法
以后的开发,大部分是发送ajax,因此这四种传递参数的方法,并不太常用.作为了解吧 第一种:使用原生 Servlet 在控制器的响应的方法中添加Servlet中的一些作用域:HttpRequestSe ...
- Python开发——5.函数
一.函数的定义 def test(x) "The Function definitions" x += return x def:定义函数的关键字 test:函数名 ():定义形参 ...
- 解决eclipse部署maven时,src/main/resources里面配置文件加载不到webapp下classes路径下的问题
解决eclipse部署maven时,src/main/resources里面配置文件加载不到webapp下classes路径下的问题. 有时候是src/main/resources下面的,有时候是sr ...
- ZZ 使用Jenkins配置Git+Maven的自动化构建
http://blog.csdn.net/xlgen157387/article/details/50353317 Jenkins是帮我们将代码进行统一的编译打包.还可以放到tomcat容器中进行发布 ...
- [算法专题] stack
1. Convert Expression to Reverse Polish Notation http://www.lintcode.com/en/problem/convert-expressi ...
- redis复习
一起学习...
- 使用js做LeetCode
概述 无意中得知了LeetCode这个刷题网站, 深得我意. 其实作为一个程序员, 我是很看重写基础代码的, 因为这个写熟了, 以后学各种语言就不会太困难. 所以我觉得有必要把这件事记下来, 供以后开 ...