Selenium实现右键保存图片(Java)
1.代码
public class SaveImage extends TestCase {
private WebDriver driver;
private Actions action;
private String baseUrl; @Before
public void setUp() throws Exception {
baseUrl = "http://baike.pcbaby.com.cn/recipe/";
System.setProperty("webdriver.chrome.driver",
"C:\\Users\\test\\AppData\\Local\\Google\\Chrome\\Application\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
action = new Actions(driver);
} @Test
public void testDownload() throws Exception {
driver.get(baseUrl);
WebElement info = new WebDriverWait(driver, 10)
.until(ExpectedConditions.presenceOfElementLocated(By.xpath(".//a[2]/em")));
assertEquals("食谱", info.getText());
driver.findElement(By.linkText("1")).click();
WebElement image = driver.findElement(By.xpath(".//*[@class='pic']/a/img"));
action.contextClick(image).build().perform();
try {
/*
* 使用Actions没办法拿到右键菜单 action.sendKeys(Keys.ARROW_DOWN).perform();
* action.sendKeys(Keys.ARROW_DOWN).perform();
* action.sendKeys(Keys.ENTER).perform();
* 使用Java原生键盘操作类Robot
*/
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_DOWN);
Thread.sleep(1000);
robot.keyPress(KeyEvent.VK_DOWN);
Thread.sleep(1000);
robot.keyPress(KeyEvent.VK_DOWN);
Thread.sleep(1000);
robot.keyPress(KeyEvent.VK_DOWN);
Thread.sleep(1000);
robot.keyPress(KeyEvent.VK_DOWN);
Thread.sleep(1000);
robot.keyPress(KeyEvent.VK_DOWN);
Thread.sleep(1000);
robot.keyPress(KeyEvent.VK_DOWN);
Thread.sleep(1000); robot.keyRelease(KeyEvent.VK_DOWN);
Thread.sleep(1000);
robot.keyPress(KeyEvent.VK_ENTER);
} catch (Exception e) {
e.printStackTrace();
} try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
try {
//使用autoit实现保存
Runtime.getRuntime().exec("E:\\storage\\selenium\\download\\test.exe");
//等待保存完成
Thread.sleep(10000);
} catch (Exception e) {
e.printStackTrace();
} } @After
public void tearDown() throws Exception {
driver.quit();
}
}
2.使用autoit实现保存
使用autoit拖动Finder Tool到需要获取界面信息的输入框及按钮。
3.编写autoit实现保存代码
ControlFocus("另存为", "","Edit1")
;ControlFocus("title","text",controlID) Edit1=Edit instance 1
WinWait("[CLASS:#32770]","",10)
$text = ControlGetText("另存为", "","Edit1")
$filename = "E:\storage\selenium\download\" + $text
Sleep(1000)
ControlSetText("另存为", "", "Edit1", $filename)
Sleep(5000)
;ControlFocus("另存为", "","Button1")
ControlClick("另存为","保存(&S)","Button1")
4.使用autoit的Compile Script to .exe工具将该au3文件转为.exe可执行文件
Selenium实现右键保存图片(Java)的更多相关文章
- selenium webdriver 右键另存为下载文件(结合robot and autoIt)
首先感谢Lakshay Sharma 大神的指导 最近一直在研究selenium webdriver右键菜单,发现selenium webdriver 无法操作浏览器右键菜单,如图 如果我想右键另存为 ...
- 使用selenium实现右键另存为保存文件
1.需要借住autoit工具和Robot类,下载地址:https://www.autoitscript.com/site/autoit/downloads/ 2.autoit的使用不再详细讲解.如下图 ...
- selenium webdriver 环境搭建--java
selenium java环境的安装可以分为三个部分:jdk.eclipse和selenium. jdk jdk(java development kit)是sun公司针对java开发人员的产品,是整 ...
- idea 右键无java class选项
项目中新建module之后,要在该目录下新增java Class文件,右键——>New发现无Java Class选项. File –Project Structure或者ctrl+alt+shi ...
- selenium定位方法(java实例)(二)
从下图中可以看到selenium有三类定位元素的方法,一种是直接通过属性.标签以及链接来定位,一种是XPath方式,最后一种是CSS方式. 下表列举了元素定位的例子 selenium之页面元素定位方法 ...
- Selenium二次封装-Java版本
package com.yanfuchang.selenium.utils; import java.awt.AWTException; import java.awt.Robot; import j ...
- Selenium启动Firefox示例(java版)
本文示例使用selenium启动Firefox,并将浏览器窗口最大化,在百度搜索框内输入"HelloWorld",最后点击搜索按钮. 源代码如下: 1 package com.se ...
- selenium元素定位(Java)
1.使用findElement方法定位元素 findElement()方法:当开始寻找符合指定条件的元素时,它将查询整个DOM,然后返回第一个找到的匹配元素. By id:通过元素ID属性定位 ...
- Selenium使用总结(Java版本)
硒在最近的发展中被广泛应用,因为它以前没有被使用过,并且已经走了太多的坑.这是一张唱片. 1.环境配置 配置要点: 1.Web驱动程序应该与浏览器版本相对应,chrome使用chrome驱动程序和ch ...
随机推荐
- SQL学习笔记之MySQL查询的三层解析
Mysqld的三层结构: SQL类型: DDL:数据库对象定义语言 对库和表的定义 DML:操作语言 DCL:控制语言 结构化的查询语言:select * from user; 执行该语句时: 1.连 ...
- CF1155D Beautiful Array(动态规划)
做法 \(f_{i,0}\)表示以\(i\)结尾未操作时的最大值 \(f_{i,1}\)表示以\(i\)结尾正在操作时的最大值 \(f_{i,2}\)表示以\(i\)结尾已结束操作时的最大值 Code ...
- JQuery的click、bind、delegate、off、unbind
.click与.bind .click和.bind都是给每个元素绑定事件,对于只绑定一个click事件,.bind事件的简写就是.click那种方式. 这两种方式都会出现两个问题: 第一个问题,如果要 ...
- 如何用纯 CSS 创作一个跳动的字母 i
效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/pZbrpJ 可交互视频 ...
- 如何用纯 CSS 创作单元素点阵 loader
效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览.https://codepen.io/comehope/pen/YvBvBr 可交互视频 此 ...
- docker使用Mesos
https://github.com/PyreneGitHub/mesos_use/tree/master
- 20145322《Java程序设计》第5次实验报告
20145322<Java程序设计>第5次实验报告 实验内容 1.根据所学内容,编写代码实现服务器与客户端 2.掌握密码技术的使用 3.设计安全传输系统,客户端中输入明文,利用DES算法加 ...
- 20144303 《Java程序设计》第五周学习总结
20144303 <Java程序设计>第五周学习总结 教材学习内容总结 第八章 异常处理 异常就是程序在运行时出现不正常情况,异常的由来是因为Java把出现的问题封装成了对象,换句话说Ja ...
- Jquery14 工具函数
学习要点: 1.字符串操作 2.数组和对象操作 3.测试操作 4.URL 操作 5.浏览器检测 6.其他操作 工具函数是指直接依附于 jQuery 对象,针对 jQuery 对象本身定义的方法,即全局 ...
- ubuntu下apt-get的配置文件是哪个
答:在/etc/apt/apt.conf 这个配置文件里可以指定使用代理,如: Acquire::https::proxy "http://myproxy.com:8080/";