Watir如何在浏览器上执行脚本时记录步骤以及如何从所有脚本生成报告

时间:2018-06-06 16:20:36

标签: watir

Watir - 显示在浏览器上执行脚本时的步骤以及如何从所有脚本生成报告 1)日志文件中每个脚本的步骤 2)总共没有脚本通过和失败 示例总脚本100 通过90失败10

1 个答案:

答案 0 :(得分:0)

关于如何记录执行步骤的第一个问题,由于我尚不确定如何记录STDIN,因此这与我的回答很接近。因此,此 logger 与您的 put 评论一样好。

require 'watir'
begin    
  time_now = Time.now.strftime("%y.%d.%m.%H:%M.%S")
  log_file_name = "log_for_script_#{time_now}.log"
  File.write(log_file_name, "")
  $stderr.reopen log_file_name
  $stdout.reopen log_file_name

  b = Watir::Browser.new   
  puts "Browser is opened #{b.exists?}" 
  b.goto "www.google.com"  
  puts "Navigate to google, title #{b.title}"
  b.text_field(:id => "lst-ib").set "logging stuff hopefully"
  puts "setting search parameters "
  puts "and now error"
  asdasd
rescue => e
  puts "error happened: #{e.backtrace.inspect}, #{e.class}, #{e.message}"  
  File.rename(log_file_name, 'FAILED_' + log_file_name)
ensure
 b.close unless b.nil? 
end

如果您的脚本需要更详细的日志,我想您可以利用chromedriver / geckodriver日志,因此,请联系我们。

您的第二个问题可以通过多种方式来完成,具体取决于您如何运行/组织watir脚本。如果您将脚本保存在文件/目录中,则可以制作另一个ruby脚本来执行目录中的每个文件,完成后,对失败的日志进行计数,因为失败时会重命名它们。

File.rename(log_file_name, 'FAILED_' + log_file_name)

如建议的那样,您可以使用一种涵盖为您进行日志记录的测试框架,但员工并不总是这样。