有没有办法减慢Cucumber下Watir Webdriver的执行速度?

时间:2015-10-21 20:46:54

标签: cucumber watir watir-webdriver

我们有什么方法可以减慢黄瓜下Watir WebDriver的执行速度?

我想直观地跟踪Watir所执行的操作。目前,它对我来说太快了。

2 个答案:

答案 0 :(得分:2)

虽然Watir本身没有用于减慢执行速度的API,但您可以使用底层Selenium-WebDriver的AbstractEventListener在某些类型的操作之前/之后添加暂停。

如果您想查看操作的结果,您可能希望在更改值和单击元素后暂停。这可以通过创建以下AbstractEventListener并在创建浏览器时传递它来完成:

class ActionListener < Selenium::WebDriver::Support::AbstractEventListener    
  def after_change_value_of(element, driver) 
    sleep(5)
  end

  def after_click(element, driver) 
    sleep(5)
  end
end

browser = Watir::Browser.new :firefox, :listener => ActionListener.new

有关您可以收听的完整事件列表,请参阅 Selenium::WebDriver::Support::AbstractEventListener documentation

答案 1 :(得分:1)

不是普遍的。您可以使用Monkey Patch将element_call方法添加到与Selenium Element的每次交互后的睡眠。在要求使用watir-webdriver后导入此代码。

module Watir
  class Element
    alias_method :watir_element_call, :element_call
    def element_call &block
      watir_element_call &block
      sleep 1
    end          
  end    
end

另请注意,Monkey Patching通常是一个坏主意,当我更改实现(我计划)时,此代码将会中断。