无法在运行Python RC时从user-extensions.js文件执行自定义Selenium断言函数

0 投票
1 回答
983 浏览
提问于 2025-04-16 21:50

我正在尝试将一个Selenium脚本从Selenium IDE导出到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”函数),这行代码被注释掉了。当我激活那一行并像这样运行脚本时:

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

你需要把你自己写的JavaScript函数用Python重新写一遍,具体的说明可以在这里找到:

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

因为Python对象无法和你自定义的JavaScript连接,所以这里留了个注释,提醒你要用Python来实现这个功能。

撰写回答