用于配置Selenium以访问JavaScript控制台的Ruby代码

Ruby code for configuring Selenium to access JavaScript console

本文关键字:控制台 Ruby 代码 JavaScript 访问 配置 Selenium 用于      更新时间:2023-09-26

配置Selenium以访问JavaScript控制台的正确Ruby代码是什么(即,使用console.logconsole.errorconsole.info等编写消息)?

我发现了几篇关于Java、Python和C#代码的文章;但是,我很难为鲁比做好每件事。

以下是我对Firefox的最佳猜测:

  caps = Selenium::WebDriver::Remote::Capabilities.chrome
  caps[:loggingPref] = {:browser => :all}
  return Selenium::WebDriver.for :firefox, :desired_capabilities => caps

这段代码似乎不会影响任何事情(我收到了一些日志消息,但没有收到console.logconsole.error等生成的消息)。因此,我怀疑我只是拼写错误,或者我需要字符串的符号。

默认情况下,Chrome提供对console.infoconsole.errorconsole.warn消息的访问。它不显示console.log消息。我认为有一种类似的技术可以配置Chrome驱动程序来返回所有消息;但是,再一次,我找不到键、值、符号和字符串的正确组合来使其工作。

该功能在ruby中称为:logging_prefs,:browser参数是一个字符串值。

这是代码(你非常接近!):

caps = Selenium::WebDriver::Remote::Capabilities.firefox
caps[:logging_prefs] = {:browser => "ALL"}
return Selenium::WebDriver.for :firefox, :desired_capabilities => caps

然后您可以使用driver.manage.logs.get(:browser) 获取日志消息