2017-01-13 3 views
1

プロジェクトで複数のテストケースを実行すると、TestNGを使用してこのエラーが発生します。複数のソリューションを試しましたが、私のために働いたものはありません
quit()が呼び出された後にFirefoxDriverを使用することはできません。quit()が呼び出された後にFirefoxDriverを使用できない

MY手順は次のとおりです -

Test1を @私は私のテストケースを実行したときしたがって、最初のケースは
オープンブラウザを伴う完全に実行されます
入力不正なログインの詳細は
ブラウザを閉じます。 Test2を 私の第2のケース@

アプリケーション
へのログイン
オープニングブラウザ
はURL
を確認しているが、ブラウザを閉じます。

しかし、この場合には、それは私のブラウザを起動していないと、エラーPASSED

の下に私を与える:LOGINFAILに失敗しました:loginpass
org.openqa.selenium.remote.SessionNotFoundException:FirefoxDriver を使用することはできませんがquit()が呼び出された後。ビルド情報:バージョン: '2.53.1'、 リビジョン: 'a36b8b1cd5757287168e54b817830adce9b0158d'、時刻: '2016-06-30 19:26:09'システム情報:ホスト: 'EIS011'、IP: '192.168.0.18' os.name: 'Windowsの8.1'、os.arch: 'AMD64'、os.version: '6.3'、 のjava.version: '1.8.0_111' ドライバー情報:driver.version:RemoteWebDriver

参考のために私のコードです -

これは私のテストケースクラスです。 enter image description here

2)これは私がページオブジェクトモデルを使用しているメソッドを呼び出すクラスです。

enter image description here

君たちは私の質問私に知らせてくださいを理解していない場合。私はかなりの数日の間、これに執着しているので、助けてください。

答えて

0

さらに多くのテストを実行する場合は、WebDriver.quit()に電話をかけてはいけません。ブラウザを閉じる場合は、WebDriver.close()としてください。ブラウザは終了しますが、ドライバプロセスは終了しません。

最後のテスト後にのみquit()と呼んでください。各テストの後にquit()を呼び出すと、次のテストを実行するためにドライバの新しいインスタンスを作成する必要があります。そうすることに多くの点はないと思います。

+0

Hey SantiBailors、返信いただきありがとうございますが、私はこれをやってみましたが、webDriver.close()を使用すると、このエラーが表示されます。 org.openqa.selenium.remote.UnreachableBrowserException:リモートブラウザと通信中にエラーが発生しました。それは死亡した可能性があります。 –

+0

@piyushjollyあなたのコードで 'close()'の呼び出しを見ることができませんでしたが、 'quit()'を呼び出した後に 'close()'を呼び出すように聞こえます。私が私の答えで言及したコールの順番に従ってください。 PSメソッド名と変数名は小文字で始まりますが、基本的に誰もが従うという確立された規則です。 PPSコードを投稿するときにスクリーンショットを使用しないでください。テキストを選択して[コード]ボタンをクリックすると、各行に4つのスペースを接頭辞として付けることでテキストをコードとしてフォーマットします。 – SantiBailors

0

@Testの注釈付きテストメソッドはすべて同じdriverインスタンスを使用しており、テストメソッドの1つでquit()メソッドを使用しているように見えるため、問題が発生します。したがって、次のテストメソッドは、例外を説明する無効な状態のWebdriverにアクセスしようとします。

あなたはこの問題を解決することができる方法のいくつかあります。

  1. 追跡あなたのwebdriverをインスタンスに対してThreadLocalバリアントを使用して、そしてbeforeInvocation()(TestNGのリスナー)のいずれかを介して、その中にインスタンスwebdriverを有効にプッシュするか@BeforeMethod経由リゾートafterInvocation()またはビアThreadLocalのインスタンスをクリーンアップ方法は@AfterMethodである。
  2. あなたの@Test方法にwebdriverをインスタンス化とクリーンアップを動かします。
関連する問題