5

Selenium IDE を使用して HTML として保存された Selenium テストを実行するDjango LiveServerTestCaseを記述できるようにしたいと考えています。コードは次のようになります。

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 を構築するプロジェクトを自分で開始しました。既存の HTML ベースの Selenium テストを Python でラップし、既存のテストを変換する必要はありません。あなたが述べたのと同じ理由でした: (クライアント) テスト チームは 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 に答える