0

我在 user-extensions.js 中编写了一个自定义断言函数,它使用自定义定位器函数(也在 user-extensions.js 中实现)来定位页面上的特定元素。

无需赘述;我需要自定义定位器功能,因为我试图在页面上的不同名称空间中定位元素 - Selenium 似乎不支持本机。

从 Selenium IDE 调用自定义断言函数时,它“隐式”使用自定义定位器函数来查找我正在寻找的元素,断言是否正常,一切正常。“隐式”是指我用目标“abc = ...”调用断言函数,然后Selenium IDE知道应该使用locateElementByAbc定位器函数来查找特定元素。

但是,当从 Selenium RC (Python) 调用相同的自定义断言函数时,使用 Python 中的 do_command 函数,自定义定位器函数显然没有被隐式调用,并且找不到元素。

如何让我的 Selenium RC Python 脚本使用 locateElementByAbc 函数?请注意,启动 Selenium 服务器时会加载 user-extensions.js,因此该部分可以正常工作。也可以使用 Python 中的 Selenium do_command 函数调用 assert 函数。

感谢您的帮助,非常感谢!

4

1 回答 1

0

问题很可能是您的自定义定位器函数 ( LocateElementByMyprefix()) 未注册。Selenium RC 的 user-extension.js 设置与 Selenium IDE 稍有不同,而且时间可能会妨碍。selenium.browserbot._registerAllLocatorFunctions()在定义函数后尝试调用。

于 2011-07-25T16:13:05.800 回答