我希望能够编写一个运行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不允许这样做并且还生成需要转换为工作的python使用Django LiveServerTestCase。
答案 0 :(得分:3)
我自己创建了一个项目来构建这种垫片:用Python包装现有的基于HTML的Selenium测试,而不必转换现有的测试。出于同样的原因,您声明:(客户端)测试团队想要编写HTML Selenium测试,但我们希望使用Selenium RC来运行它们。这是链接:
https://github.com/jpstacey/PySelenese
然而,我们将其建立的具体子项目封存起来,因此长期以来没有引起任何关注。
关于您的特定请求,编写独立的LiveServerTestCase并不是最佳选择,因为您失去了Selenium的想法,即在套件中包含许多测试用例,并使用套件index.html来定义它。 PySelenese将包装整个测试套件,并按照Selenium IDE运行它的顺序运行其中的所有测试用例;但我承认这样做的代码目前还不是很漂亮,可能更像Pythonic。
但理论上这可以做你想要的,所以随意尝试,分叉github项目,进行自己的更改等.PySelenese层目前对许多Selenium命令的支持有限,但这是相当可扩展的。 / p>
(明确的免责声明:PySelenese最初是我个人的Github项目。)