如何使用Selenium点击Firefox中的“启动应用程序”对话框?

时间:2017-03-21 14:16:20

标签: selenium selenium-webdriver

我有一个Selenium测试,我需要点击“cliclient://”链接,该链接需要打开一个应用程序。现在,我需要为每个测试创建一个新的配置文件,我不知道如何绕过点击链接时出现的“启动应用程序”对话框:

enter image description here

以下是我创建的测试片段:

    profile = Selenium::WebDriver::Firefox::Profile.new

    profile.secure_ssl = false
    profile.assume_untrusted_certificate_issuer=true

    profile["plugin.default.state"] = 2
    profile["plugin.state.java"] = 2

    profile["browser.download.folderList"] = 2
    profile["browser.download.manager.alertOnEXEOpen"] = false
    profile["browser.download.manager.closeWhenDone"] = true
    profile["browser.download.manager.focusWhenStarting"] = false
    profile["browser.download.manager.showWhenStarting"] = false
    profile["browser.helperApps.alwaysAsk.force"] = false
    profile["browser.helperApps.neverAsk.saveToDisk"] = 'application/x-msdownload,application/octet-stream, application/x-msdownload, application/exe, application/x-exe, application/dos-exe, vms/exe, application/x-winexe, application/msdos-windows, application/x-msdos-program'

    profile["gfx.direct2d.disabled"] = true
    profile["layers.acceleration.disabled"] = true

我需要设置的配置文件是什么,绕过对话框,或者在出现此对话框时以某种方式单击“确定”?

2 个答案:

答案 0 :(得分:1)

您也可以尝试使用SikuliX http://sikulix.com/这是一个自动化软件,它使用图像识别需要执行某些操作的GUI元素

Hovever将它与ruby一起使用,您很可能需要通过系统命令编译和运行java类,并且还需要在将执行自动化的机器上安装JDK

答案 1 :(得分:0)

Use C# to access the Win32 API并找到标题为"启动应用程序'的窗口句柄。您需要使用它,因为窗口由操作系统控制,因此Selenium无法与之交互。然后使用相同的API单击取消按钮(使用WinSpy找到其标识属性)

很抱歉,如果这不是一个完整的答案,但我不能仅仅发表评论,因为我目前没有足够的代表。