【发布时间】:2015-10-21 20:46:53
【问题描述】:
有什么办法可以减慢 Cucumber 下 Watir WebDriver 的执行速度?
我想直观地跟踪 Watir 执行的操作。目前,它的速度对我的眼睛来说太快了。
【问题讨论】:
-
您想普遍减慢您的脚本速度吗?你想达到什么目的?如果你描述你的推理,你可能会得到更好的答案。
标签: cucumber watir watir-webdriver
有什么办法可以减慢 Cucumber 下 Watir WebDriver 的执行速度?
我想直观地跟踪 Watir 执行的操作。目前,它的速度对我的眼睛来说太快了。
【问题讨论】:
标签: cucumber watir watir-webdriver
虽然 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.
【讨论】:
不是普遍的。您可以在每次与 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 通常是个坏主意,当我更改实现(我计划这样做)时,此代码将中断。
【讨论】: