Created
December 6, 2021 16:11
-
-
Save muditlambda/19f63859903e781909242116a1c114ed to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package MockitoDemo.MockitoDemo; | |
| import org.junit.jupiter.api.AfterAll; | |
| import org.junit.jupiter.api.AfterEach; | |
| import org.junit.jupiter.api.Assertions; | |
| import org.junit.jupiter.api.BeforeAll; | |
| import org.junit.jupiter.api.BeforeEach; | |
| import org.junit.jupiter.api.Test; | |
| import org.junit.jupiter.api.parallel.Execution; | |
| import org.junit.jupiter.api.parallel.ExecutionMode; | |
| import org.junit.jupiter.params.ParameterizedTest; | |
| import org.junit.jupiter.params.provider.Arguments; | |
| import org.junit.jupiter.params.provider.MethodSource; | |
| import org.openqa.selenium.By; | |
| import org.openqa.selenium.WebElement; | |
| import org.openqa.selenium.remote.DesiredCapabilities; | |
| import org.openqa.selenium.remote.RemoteWebDriver; | |
| import org.openqa.selenium.support.ui.ExpectedConditions; | |
| import org.openqa.selenium.support.ui.WebDriverWait; | |
| import java.util.stream.Stream; | |
| import java.net.MalformedURLException; | |
| import java.net.URL; | |
| import java.util.concurrent.TimeUnit; | |
| import static org.junit.jupiter.params.provider.Arguments.arguments; | |
| @Execution(ExecutionMode.CONCURRENT) | |
| public class CrossbrowserDemo { | |
| String username = "YOUR_USER_NAME"; | |
| String accesskey = "YOUR_ACCESS_KEY"; | |
| static RemoteWebDriver driver = null; | |
| String gridURL = "@hub.lambdatest.com/wd/hub"; | |
| String urlToTest = "https://www.lambdatest.com/"; | |
| @BeforeAll | |
| public static void start() { | |
| System.out.println("=======Starting junit 5 tests in LambdaTest Grid========"); | |
| } | |
| @BeforeEach | |
| public void setup(){ | |
| System.out.println("=======Setting up drivers and browser========"); | |
| } | |
| public void browser_setup(String browser) { | |
| System.out.println("Setting up the drivers and browsers"); | |
| DesiredCapabilities capabilities = new DesiredCapabilities(); | |
| if(browser.equalsIgnoreCase("Chrome")) { | |
| capabilities.setCapability("browserName", "chrome"); //To specify the browser | |
| capabilities.setCapability("version", "70.0"); //To specify the browser version | |
| capabilities.setCapability("platform", "win10"); // To specify the OS | |
| capabilities.setCapability("build", "Running_Junit5Tests_In_Grid_Chrome"); //To identify the test | |
| capabilities.setCapability("name", "JUnit5Tests_Chrome"); | |
| capabilities.setCapability("network", true); // To enable network logs | |
| capabilities.setCapability("visual", true); // To enable step by step screenshot | |
| capabilities.setCapability("video", true); // To enable video recording | |
| capabilities.setCapability("console", true); // To capture console logs | |
| } | |
| if(browser.equalsIgnoreCase("Firefox")) { | |
| capabilities.setCapability("browserName", "Firefox"); //To specify the browser | |
| capabilities.setCapability("version", "76.0"); //To specify the browser version | |
| capabilities.setCapability("platform", "win10"); // To specify the OS | |
| capabilities.setCapability("build", "Running_Junit5Tests_In_Grid_Firefox"); //To identify the test | |
| capabilities.setCapability("name", "JUnit5Tests_Firefox"); | |
| capabilities.setCapability("network", true); // To enable network logs | |
| capabilities.setCapability("visual", true); // To enable step by step screenshot | |
| capabilities.setCapability("video", true); // To enable video recording | |
| capabilities.setCapability("console", true); // To capture console logs | |
| } | |
| if(browser.equalsIgnoreCase("Safari")) { | |
| capabilities.setCapability("browserName", "Safari"); //To specify the browser | |
| capabilities.setCapability("version", "14.0.2"); //To specify the browser version | |
| capabilities.setCapability("platform", "macOS Big Sur"); // To specify the OS | |
| capabilities.setCapability("build", "Running_Junit5Tests_In_Grid_Safari"); //To identify the test | |
| capabilities.setCapability("name", "JUnit5Tests_Firefox"); | |
| capabilities.setCapability("network", true); // To enable network logs | |
| capabilities.setCapability("visual", true); // To enable step by step screenshot | |
| capabilities.setCapability("video", true); // To enable video recording | |
| capabilities.setCapability("console", true); // To capture console logs | |
| } | |
| try { | |
| driver = new RemoteWebDriver(new URL("https://" + username + ":" + accesskey + gridURL), capabilities); | |
| } catch (MalformedURLException e) { | |
| System.out.println("Invalid grid URL"); | |
| } catch (Exception e) { | |
| System.out.println(e.getMessage()); | |
| } | |
| } | |
| @ParameterizedTest | |
| @MethodSource("browser") | |
| public void launchAndVerifyTitle_Test(String browser) { | |
| browser_setup(browser); | |
| String methodName = Thread.currentThread() | |
| .getStackTrace()[1] | |
| .getMethodName(); | |
| driver.get(urlToTest); | |
| driver.manage().window().maximize(); | |
| driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS); | |
| String actualTitle = driver.getTitle(); | |
| System.out.println("The page title is "+actualTitle); | |
| String expectedTitle ="Most Powerful Cross Browser Testing Tool Online | LambdaTest"; | |
| System.out.println("Verifying the title of the webpage started"); | |
| Assertions.assertEquals(expectedTitle, actualTitle); | |
| System.out.println("The webpage has been launched and the title of the webpage has been veriified successfully"); | |
| System.out.println("********Execution of "+methodName+" has ended********"); | |
| } | |
| @ParameterizedTest | |
| @MethodSource("browser") | |
| public void login_Test(String browser) { | |
| browser_setup(browser); | |
| String methodName = Thread.currentThread() | |
| .getStackTrace()[1] | |
| .getMethodName(); | |
| driver.get(urlToTest); | |
| driver.manage().window().maximize(); | |
| driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS); | |
| WebElement login = driver.findElement(By.xpath("//a[text()='Login']")); | |
| login.click(); | |
| WebElement username = driver.findElement(By.xpath("//input[@name='email']")); | |
| WebElement password = driver.findElement(By.xpath("//input[@name='password']")); | |
| WebDriverWait wait = new WebDriverWait(driver,20); | |
| wait.until(ExpectedConditions.visibilityOf(username)); | |
| username.clear(); | |
| username.sendKeys("ruchirashukla89@gmail.com"); | |
| password.clear(); | |
| password.sendKeys("ruchira@89"); | |
| WebElement loginButton = driver.findElement(By.xpath("//button[text()='Login']")); | |
| loginButton.click(); | |
| driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS); | |
| String actual = driver.getTitle(); | |
| String expected = "Welcome - LambdaTest"; | |
| Assertions.assertEquals(expected, actual); | |
| System.out.println("The user has been successfully logged in"); | |
| System.out.println("********Execution of "+methodName+" has ended********"); | |
| } | |
| @ParameterizedTest | |
| @MethodSource("browser") | |
| public void logo_Test(String browser) { | |
| browser_setup(browser); | |
| String methodName = Thread.currentThread() | |
| .getStackTrace()[1] | |
| .getMethodName(); | |
| System.out.println("********Execution of "+methodName+" has been started********"); | |
| System.out.println("Launching LambdaTest website started.."); | |
| driver.get(urlToTest); | |
| driver.manage().window().maximize(); | |
| driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS); | |
| System.out.println("Verifying of webpage logo started.."); | |
| WebElement logo = driver.findElement(By.xpath("//*[@id=\"header\"]/nav/div/div/div[1]/div/a/img")); | |
| boolean is_logo_present = logo.isDisplayed(); | |
| if(is_logo_present) { | |
| System.out.println("The logo of LambdaTest is displayed"); | |
| } | |
| else { | |
| Assertions.assertFalse(is_logo_present,"Logo is not present"); | |
| } | |
| System.out.println("********Execution of "+methodName+" has ended********"); | |
| } | |
| @AfterEach | |
| public void tearDown() { | |
| System.out.println("Quitting the browsers has started"); | |
| driver.quit(); | |
| System.out.println("Quitting the browsers has ended"); | |
| } | |
| @AfterAll | |
| public static void end() { | |
| System.out.println("Tests ended"); | |
| } | |
| static Stream<Arguments> browser() { | |
| return Stream.of( | |
| arguments("Chrome"), | |
| arguments("Firefox"), | |
| arguments("Safari") | |
| ); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment