zoukankan      html  css  js  c++  java
  • 使用selenium实现右键另存为保存文件

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

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

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

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

     保存为au3文件,再用D:autoit3Aut2ExeAut2exe转为为exe,在java程序中调用

    4.代码如下

    package com.gmsd;
    
    import java.awt.AWTException;
    import java.awt.Robot;
    import java.awt.event.KeyEvent;
    
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.ie.InternetExplorerDriver;
    import org.openqa.selenium.interactions.Actions;
    import org.testng.annotations.Test;
    /** 
     * @author QiaoJiaofei 
     * @version 创建时间:2015年7月1日 下午5:00:31 
     * 类说明 
     */
    public class Testyanzm {
    	WebDriver dr = null;
    	
    	@Test
    	public void testf() throws AWTException, InterruptedException {
    		System.setProperty("webdriver.ie.driver", "D:/BaiduYunDownload/selenium/IEDriverServer.exe");
    		dr = new InternetExplorerDriver();
    		dr.manage().window().maximize();
    		dr.get("http://172.16.30.209:5555/register.shtml");
    		Actions action = new Actions(dr); 
    		action.contextClick();// 鼠标右键在当前停留的位置做单击操作 
    		action.contextClick(dr.findElement(By.id("codeimg"))).build().perform();
    		
    		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);		
    		Thread.sleep(5000);
    		
    		Runtime rn = Runtime.getRuntime();
    		Process p = null;
    		try {			
    			p = rn.exec(""D:/autoitexe/rightsave.exe"");
    		} catch (Exception e) {
    			System.out.println("Error exec!");
    		}
    		
    		
    	
    	}
    }
    

      

  • 相关阅读:
    【开发笔记】- Linux命令大全
    【面试突击】- SpringMVC那些事(一)
    【阿里云开发】- 搭建和卸载svn服务器
    【阿里云开发】- 安装tomcat
    SpringCloud之Eureka服务发现和注册(二)
    springcloud之环境工程模块(一)
    java多线程中篇(三) —— 线程的控制(创建,运行,阻塞,中断,结束)
    java多线程中篇(二) —— 线程的创建和Synchronized锁关键字
    java多线程中篇(一) —— Thread详情
    JUC之AbstractQueuedSynchronizer原理分析
  • 原文地址:https://www.cnblogs.com/qiaoyeye/p/4614430.html
Copyright © 2011-2022 走看看