为了账号安全,请及时绑定邮箱和手机立即绑定

Chrome 62和Flash

/ 猿问

Chrome 62和Flash

DIEA 2020-02-03 12:54:06

我有一个基于Flash的应用程序,需要使用Cucumber进行测试。由于默认情况下未启用Flash,因此我需要在每次测试之前将其启用,并将我认为的网址列入白名单。如果在后台阶段暂停测试,则可以手动设置这些选项。


闪光灯选项


我已经研究了添加options和preferences,但是如何使这种方法自动化,但似乎仍然无法正常工作。


这是我在env.rb文件中的标准设置


Capybara.register_driver :chrome do |app|

  chrome_binary = '/Applications/Google Chrome.app'

  capabilities = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => { "binary" => chrome_binary + '/Contents/MacOS/Google Chrome' })

  Capybara::Selenium::Driver.new(app, :browser => :chrome, :desired_capabilities => capabilities, :options => options)

end

进一步阅读强调了诸如


options = Selenium::WebDriver::Chrome::Options.new

options.add_argument('arg-here')

prefs = {"enable flash here ? "}

options.add_experimental_option("prefs", prefs)

该add_experimental_option投undefined method add_experimental_option for #<Selenium::WebDriver::Chrome::Options:0x007fca30c10988>


有人自动化过这个过程吗?


查看完整描述

2 回答

?
炎炎设计

要Flash在每次测试和WhiteListurl 之前启用,可以使用以下代码块将WebDriver实例配置为允许Flash:


ChromeOptions options = new ChromeOptions();

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);

prefs.put("PluginsAllowedForUrls", "https://your_url.com");

options.setExperimentalOption("prefs", prefs);

WebDriver driver = new ChromeDriver(options);

在这里你可以找到上详细讨论Manage Flash in Chrome和PluginsAllowedForUrls


更新:

您的评论中没有提到您无法找到setExperimentalOption或通过哪个客户set_experimental_option。这是我的IDE中的快照,没有错误/警告:



这是JavaDoc:


setExperimentalOption


查看完整回答
反对 回复 2020-02-03
?
紫衣仙女

这最终对我有用


Capybara.register_driver :chrome do |app|

  chrome_binary = '/Applications/Google Chrome.app'

  prefs = {"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,

           "PluginsAllowedForUrls" => "hendricks-as3.localhost.bbc.co.uk"

          }


  capabilities = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => { "binary" => chrome_binary + '/Contents/MacOS/Google Chrome', "prefs" => prefs })

  Capybara::Selenium::Driver.new(app, :browser => :chrome, :desired_capabilities => capabilities)

end

阅读本文档有助于我意识到该怎么做。(DebanjanB的回答也帮助我提供了特定的配置文件选项,但是像Java中那样,对我的特定需求没有帮助,尽管感谢:-))


https://sites.google.com/a/chromium.org/chromedriver/capabilities


查看完整回答
反对 回复 2020-02-03

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信