5

我希望能够编写一个运行 Selenium 测试的 Django LiveServerTestCase,该测试已使用 Selenium IDE 保存为 HTML。代码可能如下所示:

from django.test import LiveServerTestCase
from selenium.webdriver.firefox.webdriver import WebDriver

class TestUserStories(LiveServerTestCase):

    @classmethod
    def setUpClass(cls):
        cls.selenium = WebDriver()
        super(MySeleniumTests, cls).setUpClass()

    def test_registration(self):
        # Note - 'run_html_test' doesn't exist
        self.selenium.run_html_test('selenium/registration.html')

这将允许我们的 QA 团队(他们不会说 python)使用 Firefox Selenium IDE 编写测试并将它们保存为 HTML。这可能吗?

据我所知,HTML 是保存测试的最佳格式,因为它允许稍后在 IDE 中编辑它们 - 导出到 python 不允许这样做,并且还会生成需要转换以与 Django 一起使用的 python LiveServerTestCase。

4

1 回答 1

3

我自己开始了一个项目来构建这种 shim:用 Python 包装现有的基于 HTML 的 Selenium 测试,而无需转换现有的测试。出于与您所说的相同的原因:(客户端)测试团队想要编写 HTML Selenium 测试,但我们想使用 Selenium RC 运行它们。这是链接:

https://github.com/jpstacey/PySelenese

但是,我们将其构建的特定子项目封存了,因此很长时间没有受到任何关注。

关于您的特定要求,编写独立的 LiveServerTestCase 并不是最佳选择,因为这样您就失去了 Selenium 在一个套件中拥有许多测试用例的想法,以及一个套件 index.html 来定义它。相反,PySelenese 包装了整个测试套件并在其中运行所有测试用例,按照 Selenium IDE 运行它的顺序;但我承认执行此操作的代码目前不是很漂亮,可能更 Pythonic。

但这在理论上可以做你想做的事,所以请随意尝试,分叉 github 项目,进行自己的更改等。PySelenese 层目前对许多 Selenium 命令的支持有限,但这是相当可扩展的。

(明确免责声明:PySelenese 最初是我自己的个人 Github 项目。)

于 2012-08-06T13:33:28.313 回答