我已经定义了一个 LocatorBuilder 函数并将其作为 LocatorBuilders 数组的第一个元素插入。它运行良好。但是,当我在函数顶部添加一个 alert() 时,我发现每次记录的用户点击都会调用我的函数两次。具体来说,当我打开录制并单击页面上的按钮时,事件顺序是:1)我的函数被调用,2)使用我生成的定位器表达式记录点击,3)浏览器处理点击, 4) 我的函数再次被调用。
注意 - 我无法在任何地方找到此文档,但我推测从根本上讲,记录器调用 LocatorBuilders 列表中的每个函数,每个函数都返回一个候选定位器表达式,直到它获得一个与页面上的一个元素完全匹配的非空表达式.
所以我的函数按需要工作,但额外的函数调用似乎是多余的。是否有正当理由需要多次调用我的表达式构建器函数?例如,主题 HTML 元素是否可以在调用之间更改?在连续调用我的函数之间记录器在做什么?
编辑:DOH!我发现我将函数添加到 LocatorBuilders.order 列表中两次。所以现在我的函数只被调用了两次。尽管如此,为什么要多次调用?