我们有什么方法可以减慢黄瓜下Watir WebDriver的执行速度?
我想直观地跟踪Watir所执行的操作。目前,它对我来说太快了。
答案 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通常是一个坏主意,当我更改实现(我计划)时,此代码将会中断。