Selenium / TestNG:「Selenium WebDriverを使用して失敗したテストケースのスクリーンショットを取ることができません。 -- java フィールド と selenium フィールド と selenium-webdriver フィールド と automated-tests フィールド と testng フィールド 関連 問題

Selenium / TestNG: 'Unable to take a screenshot of Failed test case using Selenium Webdriver












0
vote

問題

日本語

Gmailのログインをシミュレートするテストケースを書き込もうとしています。失敗したテストケースのスクリーンショットを取得しようとすると、次のエラーが発生しています。 スクリーンショットとアンプを取ることができないコードスニペット全体を追加しました。スクリーンショットを保存してください。

エラー表示:

Failed設定:@Aftertest fail_test || java.lang.IllegalArgumentException:誤った数の引数 `

コードスニペット:

<事前> <コード> @Test public void login_gmail() throws IOException, InterruptedException { System.setProperty("webdriver.chrome.driver", "C:/Users/neha.sharma/Downloads/chromedriver.exe"); WebDriver drv=new ChromeDriver(); drv.get("http://www.gmail.com"); drv.findElement(By.id("identifierId")).sendKeys("nehasharma@gmail.com"); //USERNAME ENTRY Thread.sleep(6000); WebElement eleme = drv.findElement(By.xpath("html/body/div[1]/div[1]/div[2]/div[2]/form/div[2]/div/div[2]/div[1]/div[2]")); //NEXT BUTTON CLICK JavascriptExecutor executor = (JavascriptExecutor)drv; executor.executeScript("arguments[0].click();", eleme); Thread.sleep(2000); drv.findElement(By.xpath(".//*[@id='password']/div[1]/div/div[1]/input")).sendKeys("abcd234"); // PASSWORD ENTRY Thread.sleep(5000); //drv.findElement(By.xpath("html/body/div[1]/div[1]/div[2]/div[2]/form/div[2]/div/div/div[2]/div[1]/div[2]")).click(); WebElement eleme2 = drv.findElement(By.xpath(".//*[@id='passwordNext']/content/span")); // NEXT BUTTON CLICK AFTER ENTERING PASSWORD JavascriptExecutor executor1 = (JavascriptExecutor)drv; executor1.executeScript("arguments[0].click();", eleme2); String Pass_Result= eleme2.getText(); AssertJUnit.assertEquals(Pass_Result, "NEXT"); Thread.sleep(2000); } @AfterTest void Fail_Test(ITestResult Result) throws IOException { if (ITestResult.FAILURE==Result.getStatus()) { TakesScreenshot ts= (TakesScreenshot)drv; File Source=ts.getScreenshotAs(OutputType.FILE); FileUtils.copyFile(Source, new File("D:\TestScreen.png")); System.out.print("Screenshot taken"); } }

このコードスニペットを修正するのに役立ちます。

英語

I am trying to write a test case that simulates a GMail Login. I'm receiving the following error when trying to take a screenshot of the failed test case: Appended whole code snippet , Unable to take screenshot & save the screenshot.

Error shown:

FAILED CONFIGURATION: @AfterTest Fail_Test || java.lang.IllegalArgumentException: wrong number of arguments`

Code snippet:

 @Test     public void login_gmail() throws IOException, InterruptedException     {     System.setProperty("webdriver.chrome.driver", "C:/Users/neha.sharma/Downloads/chromedriver.exe");     WebDriver drv=new ChromeDriver();     drv.get("http://www.gmail.com");     drv.findElement(By.id("identifierId")).sendKeys("nehasharma@gmail.com"); //USERNAME ENTRY     Thread.sleep(6000);      WebElement eleme = drv.findElement(By.xpath("html/body/div[1]/div[1]/div[2]/div[2]/form/div[2]/div/div[2]/div[1]/div[2]")); //NEXT BUTTON CLICK      JavascriptExecutor executor = (JavascriptExecutor)drv;      executor.executeScript("arguments[0].click();", eleme);     Thread.sleep(2000);      drv.findElement(By.xpath(".//*[@id='password']/div[1]/div/div[1]/input")).sendKeys("abcd234"); // PASSWORD ENTRY     Thread.sleep(5000);     //drv.findElement(By.xpath("html/body/div[1]/div[1]/div[2]/div[2]/form/div[2]/div/div/div[2]/div[1]/div[2]")).click();     WebElement eleme2 = drv.findElement(By.xpath(".//*[@id='passwordNext']/content/span")); // NEXT BUTTON CLICK AFTER ENTERING PASSWORD     JavascriptExecutor executor1 = (JavascriptExecutor)drv;     executor1.executeScript("arguments[0].click();", eleme2);     String Pass_Result= eleme2.getText();     AssertJUnit.assertEquals(Pass_Result, "NEXT");     Thread.sleep(2000);     }      @AfterTest          void Fail_Test(ITestResult Result) throws IOException      {              if (ITestResult.FAILURE==Result.getStatus())             {                 TakesScreenshot ts= (TakesScreenshot)drv;                 File Source=ts.getScreenshotAs(OutputType.FILE);                 FileUtils.copyFile(Source, new File("D:\TestScreen.png"));                 System.out.print("Screenshot taken");              }     } 

Please help me out in rectifying this code snippet.

</div
              
     
     

回答リスト

0
 
vote

私が正しいかどうかわからないが、値を渡す必要があると思います

<事前> <コード> send(42, [98])5

そして私はあなたが名前ではなく、 send(42, [98])6

の名前ではなく、データ型を保持するべきだと思います。
 

I don't know if I am right or not, but I think you need to pass the value

void fail_test(String name,int name){  } 

and I think you should keep data type not the name ie, String ITestResult

</div
 
 
0
 
vote

send(42, [98])7 <コード> send(42, [98])8 メソッドでは許可されていません。しかし、<コード> send(42, [98])9 では可能です(つまり、私はあなたが使いたい注釈、注釈を考えています)。

SOは、 send(42, [97])1 send(42, [97])1 に置き換えるだけです。

 

ITestResult is not allowed on @AfterTest methods. But it is possible on @AfterMethod (which is, I think, the annotation you wanted to use).

So, just replace @AfterTest by @AfterMethod.

</div
 
 
 
 

関連する質問

0  Citrus-Framework - DataProviderは別のクラスにあります  ( Citrus framework dataprovider in a separate class ) 
私は別のクラスでデータプロバイダを作成し、それをテストクラスで@factory注釈を付けて使用することができますか? 例えば: データプロバイダクラス: <事前> <コード> public class DataProvider { private st...

0  TestNGテストはサーブレット内で実行中にスキップします  ( Testng test skips while executing it inside servlet ) 
「href="http://testng.org/javadoc/org/testng/testeneradapter.html" rel="nofollow"> testListenerAdapter "and" testng "私のコードスニペットは...

3  Java単体テストのカバレッジ番号が一致しません  ( Java unit test coverage numbers do not match ) 
以下は、Java Google App Engineを使用しているWebアプリケーションで書かれたクラスです。 TestNGとすべてのテストを使用して単体テストを書いています。その後、EclipseでEclemmaを実行して、自分のコードのテストカバレッジを確...

5  TestNGのalwaysrunパラメータ  ( Alwaysrun parameter in testng ) 
誰かが @AfterMethod(alwaysRun = true) を実行するときに説明してください。 @test メソッドがスキップされたときに実行されます。ドキュメントではそう書かれていますが、私は異なる行動を観察しました。 例: コード: <事前> ...

1  JenkinsFile 2つの段階2つのTESTNG結果  ( Jenkinsfile two stages two testng results ) 
私は2つの試験段階を持つ1つのJenkinsFileを持っています。 <事前> <コード> var result = (from q in query group q by q.order into g ...

0  スクリプト内にAbstractWebDriveReventListenerを実装する方法  ( How to implement abstractwebdrivereventlistener in a script ) 
私は SeleniumTestListener.java という名前のファイルを作成し、以下のコードを書きました: <事前> <コード> @override @AfterMethod(alwaysrun=true) public class UITestNGL...

0  TestNG @factory:デバッグテストクラスはできないようです  ( Testng factory debugging test classes seems impossible to do ) 
TESTNG工場を使用するときは、テストクラスのデバッグに問題があります。デバッグモードでは、ファクトリクラスまでのみデバッグすることしかできません。 次の例では、WebTestFactoryでデバッグすることもWebTestでは不可能です。 ファクトリー...

0  ANTを使用したTESTNG  ( Testng using ant ) 
testng.xmlを使用してテストNGテストを実行すると、Fineが稼働しますが、Ant(Build.xml)を使用してtestng.xmlを実行した場合、クラスパスでエラーが発生することはできません testng.xml: - ?xml versi...

5  MavenがSureFireeXecutionExceptionで失敗しているのはなぜ次のようなものです。>値と並行してオプションを設定できません  ( Why is maven failing with a surefireexecutionexception cannot set option para ) 
こんにちは私はここではWindows XPと最新のビルドを使用してチュートリアルを介しています http://binil.wordpress.com/2006/12/08/automated-smoke-tests-with-selenium-cargo-...

4  プロジェクトを実行するときのTestNGの問題  ( Testng problems when running the project ) 
TestNG.xml を実行したときのは報告されたエラーです。スコープをコンパイルするように変更したとしても、それでも固定されていません。私はまたプロジェクトをもう一度構築しました。誰かがこのために実行可能な解決策を与えることができれば私は感謝します。 <事...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有