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