配置Selenium以访问JavaScript控制台的正确Ruby代码是什么(即,使用console.log
、console.error
、console.info
等编写消息)?
我发现了几篇关于Java、Python和C#代码的文章;但是,我很难为鲁比做好每件事。
以下是我对Firefox的最佳猜测:
caps = Selenium::WebDriver::Remote::Capabilities.chrome
caps[:loggingPref] = {:browser => :all}
return Selenium::WebDriver.for :firefox, :desired_capabilities => caps
这段代码似乎不会影响任何事情(我收到了一些日志消息,但没有收到console.log
、console.error
等生成的消息)。因此,我怀疑我只是拼写错误,或者我需要字符串的符号。
默认情况下,Chrome提供对console.info
、console.error
和console.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)
获取日志消息