gpt4 book ai didi

java - 如何使用 headless Chrome 在 Selenium 中启用闪光灯

转载 作者:太空宇宙 更新时间:2023-11-04 10:29:58 26 4
gpt4 key购买 nike

作为 CI 流程的一部分,我正在尝试自动化与 Flash 应用程序的一些交互。当使用 Selenium 独立服务器 headless 运行 chrome(通过 xvfb-run)时,我在启用 Flash 时遇到了麻烦。我已经进行了大量搜索,但到目前为止还没有找到任何有效的方法。

我目前正在使用这个,但如果某处有已知的工作配置,我愿意切换到不同的版本......

  • Selenium 独立服务器 3.11
  • Chromedriver 2.33
  • Chrome 65.0.3325.181
  • Java 8

当我第一次开始时,我会在页面上收到一条警告,说我需要启用 Adob​​e Flash Player。我通过使用 https://sqa.stackexchange.com/questions/30312/enable-flash-player-on-chrome-62-while-running-selenium-test 中的以下内容“过去”了该消息:

    ChromeOptions options = new ChromeOptions();
options.addArguments("headless");

Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_setting_values.plugins", 1);
prefs.put("profile.content_settings.plugin_whitelist.adobe-flash-player", 1);
prefs.put("profile.content_settings.exceptions.plugins.*,*.per_resource.adobe-flash-player", 1);
// Enable Flash for this site
prefs.put("PluginsAllowedForUrls", "ourapp.com");
options.setExperimentalOption("prefs", prefs);

WebDriver driver = new ChromeDriver(options);
driver.get("ourapp.com");

加载我们的应用程序时,页面现在给出了一条略有不同的消息,我无法忽略该消息。有没有办法解决这个问题,或者有其他方法可以默认启用 Flash?

Restart Chrome to enable Adobe Flash Player

预先感谢您的帮助!

最佳答案

感谢一位同事指出这篇文章表明插件在 headless Chrome 中不起作用。 https://groups.google.com/a/chromium.org/forum/#!searchin/headless-dev/flash%7Csort:date/headless-dev/mC0REfsA7vo/rKAZdRrCCQAJ

幸运的是,就我而言,我已经使用 xvfb 作为虚拟显示器,因此从 ChromeOptions 中删除“headless”参数就是让一切运行起来所需的全部。

编辑*

虽然我在使用 xvfb 时不需要在 headless 模式下运行,但我最终发现我的问题的真正“解决方案”(更多的是解决方法)是将自定义 chrome 配置文件上传到我的 docker 镜像中。这样做可以让我设置我需要的所有首选项,并且不需要原始帖子中发布的任何代码。更愿意以编程方式实现这一点,但这至少让我得到了我现在需要的东西。我想我会发帖以防其他人将来遇到这个问题..

关于java - 如何使用 headless Chrome 在 Selenium 中启用闪光灯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50122738/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com