Chrome 54.0.2840.59-1的最新更新导致selenium无法加载Flash插件。 chrome://plugins/
中的Adobe Flash Player已停用,但在之前版本的Chrome中也已禁用。
这仅在Chromedriver旋转时的测试中出现,在普通Chrome浏览器中导航到Flash网站时没有显示任何问题。
答案 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,遇到了你所描述的同样的问题。