如何检查浏览器控制台是否有错误?
例如,我已经使用Selenium引发了浏览器(firefox的chrome),并且我已经使用Selenium WebDriver完成了一些操作。之后,我想知道Web控制台中是否有任何错误。
答案 0 :(得分:1)
我尝试接受控制台错误,如:
def check_console_log
console_log = @browser.driver.manage.get_log(:browser)
if console_log != nil
raise(console_log)
end
end
并将其记录到文件
def write_log(file_path)
work_log = @browser.driver.manage.get_log(:browser)
messages = ""
work_log.each { | item | messages += item.message + "\n"}
File.write( "#{file_path}.log", messages ) unless messages == ""
end
答案 1 :(得分:0)
我建议添加像@Arup推荐的救援块。此外,您可以添加调试语句,以便您可以逐步完成控制台中的错误
begin
puts "Your code here"
rescue => e
debugger
end
请务必将ruby-debug添加到您的Gemfile中,或者使用以下命令安装:
$ sudo gem install ruby-debug
现在,当您遇到任何错误时,您的代码将暂停,您可以在控制台中查看/单步执行异常。
我强烈推荐Better Errors Gem。 Check out this episode on RailsCasts about it。此gem允许您在Web浏览器中查看异常并与其进行交互。这是一个救生员。
我可以跨越的另一个很酷的项目是rack-webconsole。这个gem允许您随时在Web浏览器中打开命令行并与您的Rails应用程序进行交互。不确定这个宝石是否仍然支持或不支持。
最后,请务必获取RailsPanel代码。这个附加组件为您提供了一些关于开发人员工具插件中Rails应用程序的精彩信息。
答案 2 :(得分:0)
selenium ruby gem的2.38版暴露了日志记录API。
http://selenium.googlecode.com/git/rb/CHANGES
这允许您访问chrome控制台日志。
https://code.google.com/p/selenium/wiki/Logging
以下是Java中的一个示例,但您应该能够轻松地转换为ruby;
答案 3 :(得分:0)
这可以帮助您解决JavaScript错误http://watirmelon.com/2012/12/19/using-webdriver-to-automatically-check-for-javascript-errors-on-every-page/?
答案 4 :(得分:0)
我使用此代码捕获控制台错误并显示到日志
log = Logger.new(STDOUT)
console_log = $driver.manage.logs.get(:browser)
if console_log != []
begin
log.info console_log
raise Exception.new('Console Errors Found!')
end
else
puts "No Console errors found!"
end