当前位置: 首页 > 面试题库 >

使用Selenium在IE中下载文件

焦阎宝
2023-03-14
问题内容

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();
}


 类似资料:
  • 我正试图从一个包含阿根廷代表投票的公共网站自动下载excel文件。例如,来自以下页面:https://votaciones.hcdn.gob.ar/votacion/4108 我收到以下消息: selenium.common.exceptions。ElementClickInterceptedException:消息:元素在点(229480)处不可单击,因为另一个元素使其模糊 如果我尝试通过< c

  • 问题内容: 我正在尝试使用selenium从网站下载pdf文件,但我能够打开文件,但无法使用代码自动下载。 码: 请提出建议。先感谢您 问题答案: 以上问题现已解决

  • 问题内容: 我正在尝试获取下载链接并下载文件。 我有一个包含以下链接的日志文件: 我有这样的代码: 到目前为止,我不知道如何获取下载链接并下载它。可以使用selenium下载文件吗? 问题答案: 根据文档,您应该配置为自动下载具有指定内容类型的文件。这是在txt文件中使用第一个URL的示例,该文件将文件保存在当前目录中: 注意,我也简化了xpath。

  • 我想使用硒下载chrome中的pdf。 我尝试了上述代码,但不起作用

  • 我有一个硒测试,应该下载一个文件,并检查它是否包含一些东西。在火狐和Chrome测试运行正常,但在IE 11我得到一个例外。 IE驱动程序:IEDriverServer版本2.41.0.0 代码: 复制Cookie的代码: 例外情况: 消息:基础连接已关闭:接收时发生意外错误 InnerException:无法从传输连接读取数据:远程主机强制关闭了现有连接 司机。管理()。饼干。Firefox驱动

  • 问题内容: from selenium import webdriver from selenium.webdriver.chrome.options import Options 但这仅会导致以下错误: 那么如何解决呢?我是否必须使用这种“功能”?如果是这样,究竟如何? 问题答案: 试试这个。在Windows上执行 如何在Chrome中控制具有SeleniumPython绑定的文件的下载