【问题标题】:Handle save as dialog box by selenium web driver in java在 java 中通过 selenium Web 驱动程序处理另存为对话框
【发布时间】:2014-11-03 23:41:55
【问题描述】:

我正在尝试使用 Java 中的 Selenium 脚本保存一个 Html 页面,该脚本执行以下操作

  1. 打开网页。
  2. 触发右键单击事件。
  3. 点击另存为 html 选项。

现在的问题是当脚本单击另存为 html 选项时,它会显示一个弹出窗口来保存 html。

我已经在 Firefox 中设置了默认下载选项,但是当我运行脚本时,它不断显示我需要的弹出窗口:-

  1. 当 Firefox 显示另存为对话框时,它会触发一个 enter 事件,以便它可以使用 Selenium 脚本保存 html。

【问题讨论】:

    标签: java selenium selenium-webdriver automation webdriver


    【解决方案1】:

    Robot java 中的类可能会对您有所帮助。也检查一下这个link

    这是一个示例代码:

    // Create object of Robot class<br>
    Robot object=new Robot();
    
    // Press Enter<br>
    object.keyPress(KeyEvent.VK_ENTER);
    
    // Release Enter<br>
    object.keyRelease(KeyEvent.VK_ENTER);
    

    【讨论】:

    • 是否需要机器人类来处理对话框?
    • @Ken J 是的,您需要使用 Robot 类来处理对话框...因为当对话框按钮出现在 Firefox 中时您需要触发输入事件...您可以在运行时执行此操作你在 selenium 中的脚本...
    【解决方案2】:

    Selenium 无法处理弹出窗口。因此您可以选择以下选项:-

    (1) Java 机器人类

    (2)Sikuli[推荐]

    (3) AutoIt

    这些是用于处理基于窗口的弹出窗口的第 3 方工具。

    【讨论】:

    • 您好,感谢您的重播。实际上我们已经尝试了一些 AutoIt 代码,但找不到任何有用的解决方案
    【解决方案3】:

    在 Selenium 中接受确认弹出窗口可以通过 Alert 对象处理(假设驱动程序实例已准备好):

    Alert myAlert = driver.switchTo().alert();
    myAlert.accept();
    

    【讨论】:

    • 对不起,这似乎不是你想要的 :) 我是关于确认弹出窗口
    • 您好,谢谢。但先生,它不是一个警报,它是一个“另存为”对话框。
    • 作为 Firefox 的一种解决方法,您可以使用默认下载文件夹设置浏览器首选项:) 然后它不会显示此对话框
    【解决方案4】:

    使用自动 下载autoit exe 记录点击该按钮 使用代码并通过JS执行器执行

    在实际执行步骤之前不要忘记放置代码 不是在执行之后

    【讨论】:

      【解决方案5】:

      请先使用获取窗口句柄切换到窗口对话框,例如。另存为

      然后,使用机器人命令发送回车键。 它将保存文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多