1.代码
1 public class SaveImage extends TestCase { 2 private WebDriver driver; 3 private Actions action; 4 private String baseUrl; 5 6 @Before 7 public void setUp() throws Exception { 8 baseUrl = "http://baike.pcbaby.com.cn/recipe/"; 9 System.setProperty("webdriver.chrome.driver", 10 "C:\\Users\\test\\AppData\\Local\\Google\\Chrome\\Application\\chromedriver.exe"); 11 driver = new ChromeDriver(); 12 driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS); 13 action = new Actions(driver); 14 } 15 16 @Test 17 public void testDownload() throws Exception { 18 driver.get(baseUrl); 19 WebElement info = new WebDriverWait(driver, 10) 20 .until(ExpectedConditions.presenceOfElementLocated(By.xpath(".//a[2]/em"))); 21 assertEquals("食谱", info.getText()); 22 driver.findElement(By.linkText("1")).click(); 23 WebElement image = driver.findElement(By.xpath(".//*[@class='pic']/a/img")); 24 action.contextClick(image).build().perform(); 25 try { 26 /* 27 * 使用Actions没办法拿到右键菜单 action.sendKeys(Keys.ARROW_DOWN).perform(); 28 * action.sendKeys(Keys.ARROW_DOWN).perform(); 29 * action.sendKeys(Keys.ENTER).perform(); 30 * 使用Java原生键盘操作类Robot 31 */ 32 Robot robot = new Robot(); 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 robot.keyPress(KeyEvent.VK_DOWN); 46 Thread.sleep(1000); 47 48 robot.keyRelease(KeyEvent.VK_DOWN); 49 Thread.sleep(1000); 50 robot.keyPress(KeyEvent.VK_ENTER); 51 } catch (Exception e) { 52 e.printStackTrace(); 53 } 54 55 try { 56 Thread.sleep(2000); 57 } catch (InterruptedException e) { 58 e.printStackTrace(); 59 } 60 try { 61 //使用autoit实现保存 62 Runtime.getRuntime().exec("E:\\storage\\selenium\\download\\test.exe"); 63 //等待保存完成 64 Thread.sleep(10000); 65 } catch (Exception e) { 66 e.printStackTrace(); 67 } 68 69 } 70 71 @After 72 public void tearDown() throws Exception { 73 driver.quit(); 74 } 75 }
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可执行文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!