Selenium中的Adobe Flash,Chrome 54.0.2840.59-1:"不支持此插件"

时间:2016-10-18 13:56:36

标签: google-chrome flash selenium adobe selenium-chromedriver

Chrome 54.0.2840.59-1的最新更新导致selenium无法加载Flash插件。 chrome://plugins/中的Adobe Flash Player已停用,但在之前版本的Chrome中也已禁用。

这仅在Chromedriver旋转时的测试中出现,在普通Chrome浏览器中导航到Flash网站时没有显示任何问题。

6 个答案:

答案 0 :(得分:9)

https://get.adobe.com/flashplayer/安装Flash播放器适用于Mac OS,请注意您需要在Chrome驱动程序浏览器(而不是系统中的chrome浏览器)上安装它。要执行此操作,请运行打开chrome的selenium测试,然后转到该URL,然后按照安装步骤操作。完成后,下次运行测试时应该选择更改并且应该可以正常工作。

答案 1 :(得分:2)

@sircapsalot:这是可能的,我们确实有自动化我们的应用程序,内置闪存。它要求我们添加自定义flex处理程序,然后可以通过javascript调用。

Linux:为了让flash工作在chrome 54上,我从/ usr / google-chrome中获取了插件文件的工作副本,然后我就可以使用命令行参数传递给chromedriver:

  

ClassLoader classLoader = getClass().getClassLoader(); File flashPath = new File(classLoader.getResource("libpepflashplayer.so").getFile());

     

ChromeOptions options = new ChromeOptions(); options.addArguments("--ppapi-flash-path=" + flashPath);

     

return new ChromeDriver(serviceBuilder.build(), options);

Windows:@ user7038292的手动安装Flash的解决方案解决了问题

答案 2 :(得分:1)

Chrome 54不再支持Adobe Flash Player NPAPI。因此,您应该在系统中的chrome浏览器上安装Adobe Flash Player PPAPI(来自https://get.adobe.com/flashplayer/)。

答案 3 :(得分:0)

HashMap<String, Object> chromePrefs = new HashMap<>();
chromePrefs.put("plugins.plugins_enabled", new String[] {
      "Chrome PDF Viewer",
      "Native Client"
      });
chromePrefs.put("plugins.plugins_disabled", new String[] {
      "Adobe Flash Player"
      });
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePrefs);

答案 4 :(得分:-1)

自Chrome 53起,they在其浏览器上加载blocked flash。您正在使用54,因此适用。

其次,Selenium不能自动化Flash,所以我认为这个问题无论如何都是毫无意义的。如果你需要自动化flash,你应该考虑另一个库。

答案 5 :(得分:-1)

安装Flash为我解决了这个问题,之前我使用过chrome的pepperflash,遇到了你所描述的同样的问题。