0

あるクラスからアプリケーションを起動し、それを別のクラスで使用します。

こんにちは、みんな、

私はセレンとJavaに不慣れです。私はただセレンに取り組んでいます。私はいくつかの問題に直面しています。アプリケーション(たとえばgoogle.com)を起動するだけのクラスを作成したかったので、テストケースの実行など、次の他のタスクは他のクラスで実行する必要があります。これはできますか、ここにコードを貼り付けています。これを理解するのを手伝ってください。

これが私の2つのクラスです

このクラスはブラウザでGoogleを起動します。

public class GoogleTest extends SeleneseTestCase
{
    private static Selenium selenium;

    @BeforeClass
    public static void setUpBeforeClass() throws Exception 
{
        selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://www.google.com");
        selenium.start();
        selenium.windowMaximize();
    }

    @Test
    public void testSearch() throws InterruptedException
{
      selenium.open("http://www.google.com");
      selenium.waitForPageToLoad("50000");    
    }

    @AfterClass
    public static void tearDownAfterClass() throws Exception {
        selenium.stop();
    }
}

このクラスは検索フィールドに入力する必要があります

public class FirstSeleniumTest extends GoogleTest
{         private static Selenium selenium;

    @Test
    public void testSearch()
{
  selenium.type("q", "Selenium OpenQA");
      selenium.waitForPageToLoad("50000");
    }
}

「GoogleTest」のファーストクラスを実行すると完全に実行され、「FirstSeleniumTest」のセカンドクラスを実行しようとすると、次のようなエラーが発生します。失敗:null(com.dev.rao.FirstSeleniumTest)のtestSearch com.dev.rao.FirstSeleniumTest.testSearch(FirstSeleniumTest.java:18)のjava.lang.NullPointerException

4

1 に答える 1

0

通常、達成しようとしていることを実行するのは困難です。そのため、テストごとに新しい Selenium インスタンスの方が優れています。長期的にはデバッグが容易です。しかし、あなたがしようとしていることに応じて、2つの問題があります。

1.) selenium.stop()は、最初のスクリプトではなく 2 番目のスクリプトにある必要があります。インスタンスを強制終了した場合、2 番目のテストでどのように拡張できますか。

2.) Selenium を 2 回宣言する。(おそらく、2回目のテストのSeleniumインスタンスも最初のテストから拡張する必要があると思います。)

于 2012-04-24T17:03:26.197 に答える