1.需要借住autoit工具和Robot类,下载地址:https://www.autoitscript.com/site/autoit/downloads/

2.autoit的使用不再详细讲解。如下图:

3.识别到保存窗口后,用autoit编辑器编写脚本

  1. ControlFocus("保存图片", "","Edit1")
  2. ;ControlFocus("title","text",controlID) Edit1=Edit instance 1
  3.  
  4. WinWait("[CLASS:#32770]","",10)
  5.  
  6. ControlSetText("保存图片", "", "Edit1", "d:\autoit-v3-setup1.png")
  7. Sleep(2000)
  8. ControlClick("保存图片", "","Button1");

 保存为au3文件,再用D:\autoit3\Aut2Exe\Aut2exe转为为exe,在java程序中调用

4.代码如下

  1. package com.gmsd;
  2.  
  3. import java.awt.AWTException;
  4. import java.awt.Robot;
  5. import java.awt.event.KeyEvent;
  6.  
  7. import org.openqa.selenium.By;
  8. import org.openqa.selenium.WebDriver;
  9. import org.openqa.selenium.ie.InternetExplorerDriver;
  10. import org.openqa.selenium.interactions.Actions;
  11. import org.testng.annotations.Test;
  12. /**
  13. * @author QiaoJiaofei
  14. * @version 创建时间:2015年7月1日 下午5:00:31
  15. * 类说明
  16. */
  17. public class Testyanzm {
  18. WebDriver dr = null;
  19.  
  20. @Test
  21. public void testf() throws AWTException, InterruptedException {
  22. System.setProperty("webdriver.ie.driver", "D:/BaiduYunDownload/selenium/IEDriverServer.exe");
  23. dr = new InternetExplorerDriver();
  24. dr.manage().window().maximize();
  25. dr.get("http://172.16.30.209:5555/register.shtml");
  26. Actions action = new Actions(dr);
  27. action.contextClick();// 鼠标右键在当前停留的位置做单击操作
  28. action.contextClick(dr.findElement(By.id("codeimg"))).build().perform();
  29.  
  30. Robot robot = new Robot();
  31. robot.keyPress(KeyEvent.VK_DOWN);
  32. Thread.sleep(1000);
  33. robot.keyPress(KeyEvent.VK_DOWN);
  34. Thread.sleep(1000);
  35. robot.keyPress(KeyEvent.VK_DOWN);
  36. Thread.sleep(1000);
  37. robot.keyPress(KeyEvent.VK_DOWN);
  38. Thread.sleep(1000);
  39. robot.keyPress(KeyEvent.VK_DOWN);
  40. Thread.sleep(1000);
  41. robot.keyPress(KeyEvent.VK_DOWN);
  42. Thread.sleep(1000);
  43. robot.keyPress(KeyEvent.VK_DOWN);
  44. Thread.sleep(1000);
  45.  
  46. robot.keyRelease(KeyEvent.VK_DOWN);
  47. Thread.sleep(1000);
  48. robot.keyPress(KeyEvent.VK_ENTER);
  49. Thread.sleep(5000);
  50.  
  51. Runtime rn = Runtime.getRuntime();
  52. Process p = null;
  53. try {
  54. p = rn.exec("\"D:/autoitexe/rightsave.exe\"");
  55. } catch (Exception e) {
  56. System.out.println("Error exec!");
  57. }
  58.  
  59. }
  60. }

  

使用selenium实现右键另存为保存文件的更多相关文章

  1. selenium webdriver 右键另存为下载文件(结合robot and autoIt)

    首先感谢Lakshay Sharma 大神的指导 最近一直在研究selenium webdriver右键菜单,发现selenium webdriver 无法操作浏览器右键菜单,如图 如果我想右键另存为 ...

  2. webdriver高级应用- 右键另存为下载文件

    1.要使用右键另存,需要先按照第三方工具AutoIt: 链接: https://pan.baidu.com/s/12aBBhOOTmyQpH9hukt0XGA 密码: fcdk 2.创建一个名为loa ...

  3. python模拟鼠标键盘操作 GhostMouse tinytask 调用外部脚本或程序 autopy右键另存为

    0.关键实现:程序窗口前置 python 通过js控制滚动条拉取全文 通过psutil获取pid窗口句柄,通过win32gui使程序窗口前置 通过pyauto实现右键菜单和另存为操作 1.参考 aut ...

  4. Win 7 IE11不能下载文件,右键另存为也不行

    在IE11中不能下载文件,右键另存为也无效. 发现 在IE11中点击“INTERNET选项”后,IE临时文件夹的地址没有显示,大小为0,修改只能让设置在8-8MB,注销再登录后,一切设置无效. 问题就 ...

  5. Selenium实现右键保存图片(Java)

    1.代码 public class SaveImage extends TestCase { private WebDriver driver; private Actions action; pri ...

  6. windows下右键新建md文件

    windows下右键新建md文件 打开注册表 win键+R打开运行对话框, 输入regedit, 打开注册表编辑器. 修改注册表 在磁盘的任意位置新建一个文件, 后缀名为reg, 并写入一下内容 [H ...

  7. 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

    1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...

  8. Js 直接下载保存文件

    //直接下载保存文件 function Download(filePath) { // 如果中间IFRAME不存在,则添加 if (!document.getElementById("_SA ...

  9. C#中saveFileDialog(另存为)保存图片文件

    弹出另存为提示框保存图片文件: //用户自由选择指定路径保存文件            SaveFileDialog savedialog = new SaveFileDialog();        ...

随机推荐

  1. Hadoop Pipes Exception: Illegal text protocol command

    Hadoop Pipes Exception: Illegal text protocol command 对于Hadoop pipes 出现这样的错误,基本上编译代码依赖的.so和.a 版本不匹配 ...

  2. treap树---Double Queue

    HDU   1908 Description The new founded Balkan Investment Group Bank (BIG-Bank) opened a new office i ...

  3. Linux命令详解之—cat命令

    cat命令的功能是连接文件或标准输入并打印,今天就为大家介绍下Linux中的cat命令. 更多Linux命令详情请看:Linux命令速查手册 Linux 的cat命令通常用来显示文件内容,也可以用来将 ...

  4. 设计模式之桥接模式(Bridge)

    注:本文不属于原创,而是根据原文重新整理,原文是:我给媳妇解释设计模式:第一部分 设计模式不是基于理论发明的.相反,总是先有问题场景,再基于需求和情景不断演化设计方案,最后把一些方案标准化成“模式”. ...

  5. JAVA 缓存Ehcache详细解毒

    链接地址:http://raychase.iteye.com/blog/1545906 作者:RayChase 写的真是太好了,郑重推荐.

  6. mysql awr v1.0.2发布

    改进说明: 1.新增监控Mysql实例通过web控制台http://ip:port/hosts.html进行,无需更改mysql-jdbc.properties配置文件和spring-servlet. ...

  7. JSON详解 .net

    之前json掌握的不好,浪费了好多时间在查找一些json有关的转换问题,我所知道的方法只有把json序列化和反序列化一下,但是太麻烦了我觉得,所以就在找一些更简单又方便使用的方法.也许这个会有用吧,所 ...

  8. Sharepoint 2013 创建TimeJob 自动发送邮件

    创建Time Job 继承继承SPJobDefinition 并且实现里边的 Execute方法 部署 可以手动部署,把程序集放到GAC,手动激活feature 如果部署的时候说feature已经存在 ...

  9. [android] SQLite 数据库的升级 和 降级

    public class SqliteHelp extends SQLiteOpenHelper { /* * context:创建数据库所需的 上下文对象 * name: 数据库名字 * facto ...

  10. UIView简单动画

    UIView动态实现的效果有以下几种: 1.动态改变frame 2.动态改变color 3.动态改变alpha 4.动态改变bounds 首先,我们先看几种BasicView动画 #pragma ma ...