【问题标题】:How to get rid of "allow <website> to run 'silverlight'?" alert on firefox using firefoxprofile in webdriver如何摆脱“允许 <website> 运行‘silverlight’?”在 webdriver 中使用 firefoxprofile 对 firefox 发出警报
【发布时间】:2015-01-06 18:14:13
【问题描述】:

在使用机器人 api 拖放鼠标位置时,我的鼠标位置被询问“允许运行 silverlight?”的警报干扰(以全屏模式运行 firefox)。由于此警报,甚至我的 webdriver api 也受到影响,因为打算在一个按钮上发生的点击在另一个按钮上执行。

我正在使用 WebDriver 来自动化我的场景,并结合机器人 api 进行拖放。有没有办法我可以在 Firefox 配置文件中设置一些东西,这样这个警报就不会出现?

下图显示警报

https://drive.google.com/file/d/0B36CJTZFg52aUFhvWmZIVzNleEk/view?usp=sharing

【问题讨论】:

    标签: selenium-webdriver webdriver selenium-firefoxdriver


    【解决方案1】:

    在 Windows 上你可以这样做:

    // Enable Silverlight
    profile.setPreference("plugin.state.npctrl", 2);
    

    在 OSX 上:

    // Enable Silverlight
    profile.setPreference("plugin.state.silverlight", 2);
    

    在 Windows 上,DLL 名称是 npctrl.dll,所以我相信这就是“npctrl”的来源。您可以从以下位置看到:

    about:plugins
    

    对于 Linux,您必须进行检查。打开两个标签之一:

    about:addons
    

    另一个用于:

    about:config
    

    在 about:addons 中使 Silverlight 插件始终被激活。

    在 about:config 中按“plugins.state”过滤。当您在 about:addons 中更改激活状态时更改的项目是您添加以添加到 FireFox 配置文件的项目。

    【讨论】:

    • 谢谢 watssonmw。你的回答真的很有帮助。我想在这里为 Windows 平台添加更多内容。在 firefox 中点击 about:config,您将看到所有具有类似 plugins.state. 状态的插件。您只需要按原样选择整个名称(plugins.state.)并将其作为第一个参数 profile.setPreference("1 args", 2);
    【解决方案2】:

    您可以创建新的 Firefox 配置文件

    http://www.toolsqa.com/selenium-webdriver/custom-firefox-profile/

    通过打开 Firefox 配置文件管理器,然后按添加配置文件按钮,您可以命名它。你需要在 FireFox 中打开该配置文件,下载 Silverlight 插件,安装它,然后转到 firefox 插件管理器

    https://helpdesk.contentraven.com/hc/en-us/articles/201455107-Mozilla-Firefox-and-Silverlight-Plug-In

    在管理器中,您必须将 silverlight 插件设置为始终激活。

    然后你必须在调用驱动程序时调用这个配置文件:

    ProfilesIni profile = new ProfilesIni();
    
    FirefoxProfile your_profile = profile.getProfile("<name of your profile>");
    
    WebDriver driver = new FirefoxDriver(your_profile);
    

    【讨论】:

    • 我认为您误解了这个问题。他要问的是设置配置文件首选项以使 Silverlight 插件 不会妨碍您自动化。
    • 是的,并且始终激活自定义配置文件上的选项将阻止它执行此操作。
    • 感谢您的解决方案,它对我有用,但 Subh 回答我的问题是正确的。我想要类似于“profile.setPreference("browser.fullscreen.autohide",true);”的东西,它将设置 Silverlight 插件始终激活。
    猜你喜欢
    • 2022-12-17
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多