What Is The Difference Between Assert And Verify In Selenium
Both Assert and Verify commands are used to find whether a given input is present or not on the webpage. There are some difference between Assert and Verify in Selenium.
Let’s see the basic difference between Assert and Verify in Selenium:
Assert command in selenium:
When an “assert” command fails, the test execution will be aborted. So when the Assertion fails, all the test steps after that line of code are skipped. The solution to overcoming this issue is to use a try-catch block. We use the Assertion in the try catch block. Mostly, the assert command is used when the end result of the check value should pass to continue to the next step.
In simple words, if the assert condition is true then the program control will execute the next test step but if the condition is false, the execution will stop and further test step will not be executed.
To overcome this we use Soft Assert in TestNG. Checkout below post to know what is Soft Assert.
Must Read: Soft Assert in Selenium
Verify command in selenium:
When a “verify” command fails, the test will continue executing and logging the failure. Mostly, the Verify command is used to check non-critical things. In such cases where we move forward even though the end result of the check value is failed.
In simple words, there wont be any halt in the test execution even though the verify condition is true or false.
Note: In TestNG, we use only Assert Statements. We can use Verify statement in terms of if-else and try-catch.
if(isElementPresent(By.linkText("login"))){ System.out.println("Login link is present"); } else{ System.out.println("Login link is not present"); }
Or
try { assertTrue(isElementPresent(By.xpath("assert-and-verify"))); } catch (Error e) { verificationErrors.append(e.toString()); }
Please be patient. The video will load in some time.
Must Read: How To Capture Full Page Screenshot in Selenium 3
Let’s see a basic example on Assertion in TestNG:
The below program is written using TestNG. Click here to see the post on How To Install TestNG.
package stmTutorial; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Test; public class AssertionExample { @Test public void assertion(){ //Instantiation of driver object. To launch Firefox browser WebDriver driver = new FirefoxDriver(); //To open the URL driver.get("https://www.softwaretestingmaterial.com"); //Actual title is "Software Testing Material - A site for Software Testers" //We took title as "Software Testing Material" to make the test fail String Title = "Software Testing Material"; String GetTitle = driver.getTitle(); System.out.println("Assertion starts here..."); Assert.assertEquals(Title, GetTitle); System.out.println("A blog for Software Testers"); driver.quit(); } }
After executing the above program, we see only “Assertion starts here…” in the console. We made the assertion fail deliberately. So, in the console we couldn’t see “A blog for Software Testers”. Here the assertion failed, so the next step to print “A blog for Software Testers” is skipped.
To over come this we use try-catch block. See the below program.
package stmTutorial; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Test; public class AssertionExample { @Test public void assertion(){ //Instantiation of driver object. To launch Firefox browser WebDriver driver = new FirefoxDriver(); //To open the URL driver.get("https://www.softwaretestingmaterial.com"); //Actual title is "Software Testing Material - A site for Software Testers" //We took title as "Software Testing Material" to make the test fail String Title = "Software Testing Material"; String GetTitle = driver.getTitle(); System.out.println("Assertion starts here..."); try{ Assert.assertEquals(Title, GetTitle); }catch (Throwable t){ System.out.println("A blog for Software Testers"); } driver.quit(); } }
Must Read: TestNG Complete Tutorial
If you are not regular reader of my blog then I highly recommend you to signup for the free email newsletter using the below link
What is the difference between soft assert and verify?
Hi Kumud, TestNG doesn’t support Verify statements. To use verify you need to use JUnit. Please check this link for Soft Asserts
I am using testng framework,
I have a Baseclass which consists of Before and After suite
I have a Loginclass extends Baseclass which consists of Test annotation consists of password and username passing from excel.
I have a Home class extends LoginClass which consists of Test annotation consists of user information passing from excel.
I am giving username and password wrong in excel,how to skip Homeclass without executing when Loginclass fails
I needed the Condition to skip the Homeclass
You have put assertion, can you please let me know where you have added verification. With example please
We use verification while recording scripts using Selenium IDE