让我们想象一下,我有一个正常的自动化测试,Watir和Cucumber会进入网页,做一些事情,然后结束。每次点击和每次微操作后我都会对场景进行操作(让我们说正常步骤包含几个微操作),我想做一个检查。
检查是在Firefox控制台中查找并查找JavaScript错误(我已经有一个用于读取FF控制台显示的系统)。我希望在自动化的每个动作之后完成这项检查。
我现在拥有的最高频率是使用:
AfterStep do |scenario|
raise get_js_error_feedback() unless get_js_error_feedback().empty?
end
但这还不够。有什么想法吗?
答案 0 :(得分:1)
为了更精细,您可以使用Selenium-Webdriver's AbstractEventListener。
您可以创建一个侦听器,在每次单击操作(以及其他事件)后执行操作:
class JavascriptListener < Selenium::WebDriver::Support::AbstractEventListener
def after_click(element, driver)
puts 'after_click'
end
end
然后,您需要将该侦听器传递给Watir :: Browser:
browser = Watir::Browser.new :firefox, :listener => JavascriptListener.new()
执行点击操作时,after_click
方法中的代码将被执行:
browser.button.click
#=> 'after_click'
我不确定get_js_error_feedback
方法中的内容。您可能需要也可能不需要对其进行一些更改,以便听众可以使用它。