あるクラスからアプリケーションを起動し、それを別のクラスで使用します。
こんにちは、みんな、
私はセレンと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
1 に答える
0
通常、達成しようとしていることを実行するのは困難です。そのため、テストごとに新しい Selenium インスタンスの方が優れています。長期的にはデバッグが容易です。しかし、あなたがしようとしていることに応じて、2つの問題があります。
1.) selenium.stop()は、最初のスクリプトではなく 2 番目のスクリプトにある必要があります。インスタンスを強制終了した場合、2 番目のテストでどのように拡張できますか。
2.) Selenium を 2 回宣言する。(おそらく、2回目のテストのSeleniumインスタンスも最初のテストから拡張する必要があると思います。)
于 2012-04-24T17:03:26.197 に答える