我正在使用Selenium IDE
。我尝试搜索三星s3图像,右键单击一个图像,然后单击保存图像,然后一个窗口来了,我不知道如何单击保存按钮他们的。
我的代码就是这个
WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com");
driver.findElement(By.id("lst-ib")).clear();
driver.findElement(By.id("lst-ib")).sendKeys("samsung s3 picture");
driver.findElement(By.name("btnG")).click();
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
driver.findElement(By.linkText("Images for samsung s3")).click();
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
WebElement image=driver.findElement(By.name("JJJ3gKgkvtZE4M:"));
Actions action= new Actions(driver);
action.contextClick(image).build().perform();
action.sendKeys(Keys.CONTROL, "v").build().perform();
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN);
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN);
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN);
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN);
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN);
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN);
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN);
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN);
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN);
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN);
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN);
// To press Save button.
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
Alert alt=driver.switchTo().alert();
Thread.sleep(3000);
alt.accept();
我想点击该保存按钮
答案 0 :(得分:0)
保存图像时显示的弹出窗口由OS提供,而不是由浏览器提供。基于操作系统的弹出窗口无法使用selenium自动化,因为它仅与浏览器进行交互。您可以使用AutoIT工具自动执行基于窗口的弹出窗口。希望它有所帮助!
答案 1 :(得分:0)
控制此类OS相关事件的最佳方法是使用Robot类。
Robot robot = new Robot(); // Robot class throws AWT Exception
Thread.sleep(2000); // Thread.sleep throws InterruptedException
robot.keyPress(KeyEvent.VK_DOWN); // press arrow down key of keyboard to navigate and select Save radio button
Thread.sleep(2000); // sleep has only been used to showcase each event separately
robot.keyPress(KeyEvent.VK_TAB);
Thread.sleep(2000);
robot.keyPress(KeyEvent.VK_TAB);
Thread.sleep(2000);
robot.keyPress(KeyEvent.VK_TAB);
Thread.sleep(2000);
robot.keyPress(KeyEvent.VK_ENTER);
// press enter key of keyboard to perform above selected action
答案 2 :(得分:0)
您不需要使用Robot下载图像! 有更优雅,更快捷的方法。 例如,您可以创建自定义Firefox配置文件并根据mimetype自动下载..
已经有大量有关此问题的答案,例如:access-to-file-download-dialog-in-firefox
您还可以查看值得阅读的this链接。