【问题标题】:Is there a way to slow down execution of Watir Webdriver under Cucumber?有没有办法在 Cucumber 下减慢 Watir Webdriver 的执行速度?
【发布时间】:2015-10-21 20:46:53
【问题描述】:

有什么办法可以减慢 Cucumber 下 Watir WebDriver 的执行速度?

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

【问题讨论】:

  • 您想普遍减慢您的脚本速度吗?你想达到什么目的?如果你描述你的推理,你可能会得到更好的答案。

标签: cucumber watir watir-webdriver


【解决方案1】:

虽然 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.

【讨论】:

    【解决方案2】:

    不是普遍的。您可以在每次与 Selenium 元素交互后对 element_call 方法进行猴子补丁以添加睡眠。在需要 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 通常是个坏主意,当我更改实现(我计划这样做)时,此代码将中断。

    【讨论】:

      猜你喜欢
      • 2020-12-04
      • 2017-05-20
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-18
      相关资源
      最近更新 更多