Ruby 铬62和闪光

Ruby 铬62和闪光,ruby,google-chrome,selenium,flash,cucumber,Ruby,Google Chrome,Selenium,Flash,Cucumber,我有一个基于Flash的应用程序,我需要使用Cucumber进行测试。由于默认情况下未启用flash,我需要在每次测试之前启用它,并将我相信的url列入白名单。如果我在后台阶段暂停测试,我可以手动设置这些选项 但是,我已经考虑过添加选项和首选项,但似乎仍然无法开始工作 这是我在env.rb文件中的标准设置 Capybara.register_driver :chrome do |app| chrome_binary = '/Applications/Google Chrome.app'

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

但是,我已经考虑过添加
选项
首选项
,但似乎仍然无法开始工作

这是我在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_选项
为#


是否有人自动执行此过程?

要在每次测试之前启用
Flash
,以及
WhiteList
url,您可以使用以下代码块配置
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);
ChromeOptions选项=新的ChromeOptions();
Map prefs=新的HashMap();
prefs.put(“profile.default\u content\u setting\u values.plugins”,1);
prefs.put(“profile.content\u settings.plugin\u whitelist.adobeflashplayer”,1);
prefs.put(“profile.content\u settings.exceptions.plugins.*,per\u resource.adobeflashplayer”,1);
prefs.put(“pluginAllowedForURL”https://your_url.com");
选项。设置实验选项(“prefs”,prefs);
WebDriver=新的ChromeDriver(选项);
在这里,您可以找到关于和的详细讨论

更新: 您在评论中没有提到您无法通过哪个客户端找到
setExperimentalOption
setExperimentalOption
。以下是my IDE中没有错误/警告的快照:

以下是:


要在每次测试前启用
Flash
白名单
url,可以使用以下代码块配置
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);
ChromeOptions选项=新的ChromeOptions();
Map prefs=新的HashMap();
prefs.put(“profile.default\u content\u setting\u values.plugins”,1);
prefs.put(“profile.content\u settings.plugin\u whitelist.adobeflashplayer”,1);
prefs.put(“profile.content\u settings.exceptions.plugins.*,per\u resource.adobeflashplayer”,1);
prefs.put(“pluginAllowedForURL”https://your_url.com");
选项。设置实验选项(“prefs”,prefs);
WebDriver=新的ChromeDriver(选项);
在这里,您可以找到关于和的详细讨论

更新: 您在评论中没有提到您无法通过哪个客户端找到
setExperimentalOption
setExperimentalOption
。以下是my IDE中没有错误/警告的快照:

以下是:


这就是我最终的成功之处

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中,这对我的特定需求没有好处,不过还是要感谢:-)


这就是我最终的成功之处

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中,这对我的特定需求没有好处,不过还是要感谢:-)


谢谢您的回答。有Ruby版本的吗?似乎
setExperimentalOption
set\u experimental\u option
都是未定义的方法,您是否有相同的问题?我已经将您的答案标记为有用,因为它在某些方面确实有帮助,谢谢您的回答。有Ruby版本的吗?似乎
setExperimentalOption
set\u experimental\u option
都是未定义的方法,您有相同的问题吗?我已经将您的答案标记为有用,因为它在某些方面确实有帮助,谢谢