Webdriver.io为selenium-standalone启用闪存

时间:2017-07-15 22:33:59

标签: google-chrome selenium flash webdriver-io

我正在 webdriver.io 上使用 selenium独立服务器和最新 Google Chrome驱动程序在 node.js 上编写验收测试

我需要检查Flash元素是否可点击,但浏览器会向我显示“重新启动Chrome以启用Adobe Flash Player”。

我看到article显示了如何让Chrome驱动程序在本地计算机上查看自定义配置文件,但我无法理解如何在我的独立服务器上使用它,因为它很差{{3}用于配置。 你能解释为webdriver.io中的selenium独立服务器启用Adobe Flash播放器的正确方法吗?

3 个答案:

答案 0 :(得分:2)

我发现以下方法可行:

browserName: 'chrome',
 'goog:chromeOptions' : {
            args: ['enable-features=RunAllFlashInAllowMode',
                   'disable-features=EnableEphemeralFlashPermission'],
            prefs: {
                "profile.content_settings.exceptions.plugins.*,*.per_resource.adobe-flash-player": 1,
                'PluginsAllowedForUrls': '/route/to/site.com'
            }
        }

使用临时模式将创建一个临时配置文件,使首选项生效:

https://developer.chrome.com/extensions/contentSettings https://support.google.com/chrome/a/answer/3538894?hl=en

'goog:chromeOptions'自硒3.8开始引入github.com/elgalu/docker-selenium/issues/201 –

您可以打开一个JSON Blob配置文件,并查看在profile.content_settings.exceptions.plugins和profile.content_settings.exceptions.flash_data添加的站点。

答案 1 :(得分:0)

这很容易。您需要创建一个自定义配置文件,您将始终使用该配置文件加载Chrome。然后你就像手动配置浏览器一样。这意味着为Flash制作网站排除。加载一些扩展或任何你想要preconfig的东西。使用此代码,您可以这样做

{{1}}

此处还有chrome的所有命令行命令 this SO post

答案 2 :(得分:0)

另一种可行的方法。可以在chrome配置中允许执行flash插件 您需要在代码示例

中添加wdio.conf.js三个最后的首选项
chromeOptions : {
        args: chromeArgs,
        prefs: {
            "download.default_directory": process.env.PWD +'/download',
            "profile.default_content_setting_values.plugins": 1,
            "profile.content_settings.plugin_whitelist.adobe-flash-player": 1,
            "profile.content_settings.exceptions.plugins.*,*.per_resource.adobe-flash-player": 1
        }
    }

我希望它会有所帮助