我在user-extensions.js中编写了一个自定义断言函数,它使用自定义定位器函数 - 也在user-extensions.js中实现 - 来定位页面上的特定元素。
没有详细说明;我需要自定义定位器函数,因为我试图在页面上的不同命名空间中找到一个元素 - Selenium似乎本身不支持。
从Selenium IDE调用自定义断言函数时,它使用自定义定位器函数“隐式”查找我正在寻找的元素,断言并且一切正常。使用“隐式”我的意思是我用一个目标“abc = ...”调用assert函数,然后Selenium IDE知道应该使用locateElementByAbc定位器函数来查找特定元素。
但是,当从Selenium RC(Python)调用相同的自定义断言函数时,使用Python中的do_command函数,显然不会隐式调用自定义定位器函数,并且找不到该元素。
如何让我的Selenium RC Python脚本使用locateElementByAbc函数?请注意,启动Selenium服务器时会加载user-extensions.js,因此该部分正在运行。断言函数也可以使用Python的Selenium do_command函数调用。
感谢您的帮助,非常感谢!
答案 0 :(得分:0)
问题很可能是您的自定义定位器功能(LocateElementByMyprefix()
)未注册。 Selenium RC的用户扩展.js设置与Selenium IDE略有不同,时间可能会受到阻碍。在定义函数后尝试调用selenium.browserbot._registerAllLocatorFunctions()
。