在针对Selenium服务器运行Python RC时,无法从user-extensions.js文件执行自定义Selenium assert函数

时间:2011-07-19 12:51:28

标签: python selenium selenium-ide attributeerror user-extensions.js

我正在尝试从Selenium IDE将Selenium脚本导出到Python。我正在使用一些user-extension.js函数(它们在Selenium IDE中工作)。导出到Python后,生成的脚本如下所示:

from selenium import selenium
import unittest, time, re

class new_selenium_test(unittest.TestCase):
    def setUp(self):
        self.verificationErrors = []
        self.selenium = selenium("localhost", 4444, "*chrome", "http://localhost/")
        self.selenium.start()

    def test_selenium_assert_something(self):
        sel = self.selenium
        # sel.assert_something("abc=1", "x=126")

    def tearDown(self):
        self.selenium.stop()
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()

请注意,最有趣的一行,我调用我的用户扩展代码(函数“assert_something”,它在我的user-extensions.js文件中映射函数“assertSomething”)被注释掉了。当我激活该行并对Selenium服务器运行脚本时,如下所示:

py.test new-selenium-test.py

我收到这样的错误:

AttributeError: 'selenium' object has no attribute 'assert_something'

知道为什么Selenium IDE注释掉我的自定义调用,以及它为什么不从Python执行它?

请注意,我已经启动了Selenium服务器:

java -jar selenium-server-standalone-2.0rc2.jar -userExtensions /path/user-extensions.js

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您需要在Python中重写自定义JavaScript函数,如下所述:

http://groups.google.com/group/selenium-users/browse_thread/thread/e927dad7e6cb2944/1712b997934cece5

它无法将Python对象连接到您的自定义JS,因此它会在那里留下注释以提醒您在Python中实现它。