1

Selenium と LeanFT がうまく連携できるかどうか知りたいです。誰かがこれをやろうとしたかどうかはまだわかりませんが、うまくいけば、LeanFT はセレン フレームワークにいくつかの補足的な利点を提供できると思います。

私が現在理解しているように、Selenium の制限は次のとおりです。

  • Selenium は、それを認識するために初期ブラウザを開く必要があります
  • Selenium は、それらを認識するためにすべてのポップアップを開く必要があります。
  • Selenium WebDriver は、Selenium 以外の手順を待っている間に古くなることがあります。

私は、HP が提案したモデルと、これがどのように機能するかについての私自身のアイデアの両方について、オブジェクト フロー UML を試みました。

HP オブジェクト フロー

Selenium と LeanFT のオブジェクト フロー

制御フローは次のようになります。

  1. @Before -> globalSetup (LeanFT 初期化)
  2. @BeforeClass -> testSetup (LeanFT 初期化)
  3. @BeforeClass -> getSeleniumDriver (セレン)
  4. @Test ->いくつかのセレン手順 /**** セレンが死んでしまうのを防ぐため。****/
  5. @Test -> 新しいスレッド -> 実行leanFTsnippet1()
  6. @Test ->セレンの最終ステップを再開..
  7. @After -> レポート、Webdriver の終了

これは、テストクラスの例からの私の現在のコードの一部です。

@BeforeClass
public static void beforeLFTClass() throws Exception {
    globalSetup(CoreFunctionality.class);
}

@AfterClass
public static void afterLFTClass() throws Exception {
    globalTearDown();
}

@Test
public void runLeanFtThread() {
    // put selenium code here
             // ...
             // begin leanft part of test
    Thread leanftThread = new Thread( new Runnable() {

        @Override
        public void run() {
            try {
                test();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    });
    leanftThread.start();
    try {
        leanftThread.join();
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}


public void test() throws Exception {

    //Starting Browser
    Browser browser = BrowserFactory.attach(new BrowserDescription.Builder().title(driver.getTitle()).build());
    Assert.assertEquals(browser.getTitle(), driver.getTitle());
}

とにかく、それはかなり興味深い問題です。皆さんの考えを本当に知りたいです。

ありがとう!

4

3 に答える 3