0

私はSeleniumWebdriverでテストを行い、InternetExplorerでjunitを使用して実行します。だから私はすなわちのためのウェブドライバーを作成します:

System.setProperty("webdriver.ie.driver", "IEDriverServer.exe");
        InternetExplorerDriver driver = new InternetExplorerDriver();

テストを続行する必要がありますが、別のクラスを使用しています。すべてのアクションは最初のテストと同じウィンドウで実行されるため、新しいieドライバーを作成する必要はありません。テストの実行を続行するにはどうすればよいですか?次のような2番目のテストで新しいWebドライバーを作成してみます

InternetExplorerDriver excep1;

しかし、ファーストクラスのテストを実行した後、java.lang.NullPointerExceptionで失敗します。

4

3 に答える 3

0

シングルトンを使用して問題を解決する適切な方法を見つけました。必要なのは、インスタンスを構成する新しいクラスを作成することだけです

public class Browser{


    private static InternetExplorerDriver driver;

    private void InternetExplorerDriver(){
    }

    public static InternetExplorerDriver getInstance(){
            if (driver == null){
                driver = new InternetExplorerDriver();
            }
            return driver;
    }

}

そして、ドライバーが必要な各場所に Browser.getInstance() を配置します。

于 2012-10-04T09:02:53.507 に答える
0

InternetExplorerDriver を作成し、同じインスタンスを両方のクラスに渡す必要があります。

同じインスタンスを渡すため、2 番目のクラスは、もう一方が停止した時点から続行されます。

たとえば(コードを実行していないため、エラーがある可能性があります)。

public class Main {
  public static void main(String[] args) {
    InternetExplorerDriver driver = new InternetExplorerDriver();
    Class1 class1 = new Class1(driver);
    Class2 class2 = new Class2(driver);
    class1.run();
    class2.run();
  }
}
于 2012-10-03T13:34:19.703 に答える