使用Selenium在IE中下载文件

OK,所以我正在尝试使用Selenium导出文件。我的浏览器是IE。当我

单击导出按钮时,将出现一个本机Windows对话框。

弹出的图片 在此处输入图片说明

我必须单击“保存”按钮。为此,我尝试使用AutoIT但

不起作用。

    exportbutton.click();

Thread.sleep(2000);

driver.switchTo().activeElement();

AutoItX x = new AutoItX();

x.winActivate("window name");

x.winWaitActive("window name");

x.controlClick("window name", "", "[CLASS:Button; INSTANCE:2]");

这没有用。因此,我决定使用Robot类并执行键盘单击Atl + S,因为这还将使浏览器能够保存文件。那

也不起作用。

   try

{

Robot robot = new Robot();

robot.setAutoDelay(250);

robot.keyPress(KeyEvent.VK_ALT);

Thread.sleep(1000);

robot.keyPress(KeyEvent.VK_S);

robot.keyRelease(KeyEvent.VK_ALT);

robot.keyRelease(KeyEvent.VK_S);

}

catch (AWTException e)

{

e.printStackTrace();

}

我认为Web驱动程序存在一些问题,因为我尝试在以后打印一行exportbutton.click(),但也没有打印出来。

我是新手,所以我无法理解问题。请帮帮我。

回答:

因此,问题在于,当您调用click()函数时,游标有时会卡住。因此,作为一种解决方案,我使用了Robot类来移动光标并单击导出按钮,然后使用Robot类来按Alt + S,这是在IE中保存文件的键盘快捷键。

点击我使用的按钮

try

{

Robot robot = new Robot();

Thread.sleep(2000);

robot.mouseMove(coordinates.getX()+100,coordinates.getY()-400);

Thread.sleep(2000);

robot.mousePress( InputEvent.BUTTON1_DOWN_MASK);

robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);

}

catch (AWTException e)

{

e.printStackTrace();

}

为了获得上面的代码段中的坐标,我使用了以下代码

Point coordinates = driver.findElement(By.id("id")).getLocation();

System.out.println("Co-ordinates"+coordinates);

并按Alt + SI使用以下代码

try

{

Robot robot = new Robot();

robot.setAutoDelay(250);

robot.keyPress(KeyEvent.VK_ALT);

Thread.sleep(1000);

robot.keyPress(KeyEvent.VK_S);

robot.keyRelease(KeyEvent.VK_ALT);

robot.keyRelease(KeyEvent.VK_S);

}

catch (AWTException e)

{

e.printStackTrace();

}

以上是 使用Selenium在IE中下载文件 的全部内容, 来源链接: utcz.com/qa/435846.html

回到顶部