Рубрики
Без рубрики

Учебник По Java Selenium: Автоматизация Тестирования Формы Регистрации Пользователя

Если вы только начинаете с автоматизированного тестирования своего продукта Selenium, на первой странице вы бы написали… С тегами selenium, csharp, java, веб-разработчик.

Если вы только начинаете с автоматизированного тестирования своего продукта Selenium, первой страницей, которую вы, вероятно, захотите автоматизировать, будет страница регистрации или входа в систему. Если у вас есть онлайн-платформа, такая как компания электронной коммерции или продукт “Программное обеспечение как услуга”, страница регистрации служит дверью для приветствия посетителей вашего веб-приложения. Это одна из самых простых, но в то же время одна из самых важных страниц вашей платформы, и она появляется в начале каждого возможного путешествия пользователя, которое вы, возможно, захотите протестировать. Следовательно, это также одна из самых важных веб-страниц для вашего веб-приложения.

Итак, сегодня мы углубимся в то, как вы можете выполнить тестирование автоматизации Selenium страницы формы регистрации. Мы собираемся выполнить автоматизированное тестирование с помощью Selenium и Java. В одном из наших предыдущих Руководств по Java Selenium мы продемонстрировали, как автоматизировать процесс входа в систему с помощью тестирования Selenium automation.

Сегодня мы рассмотрим пример Страницы регистрации/Страницы регистрации из Лямбда-теста. Мы начнем наше обсуждение с тестовых примеров и процесса для страницы регистрации LambdaTest, а затем перейдем к части автоматизации, чтобы посмотреть, как мы можем увеличить охват нашего браузера для эффективного кроссбраузерного тестирования и ускорить тестирование автоматизации с помощью параллельного тестирования на Selenium Grid .

Прежде чем двигаться дальше, давайте рассмотрим рабочий процесс немного подробнее и посмотрим, как работает Страница регистрации лямбда-теста .

В качестве первого шага мы вводим URL https://www.lambdatest.com

Оттуда мы собираемся нажать на кнопку “Бесплатная регистрация” и перейти на страницу Регистрации Лямбда-теста.

Теперь давайте проверим Функциональные поля на этой странице регистрации и перечислим их.

  • Организация /Название компании (Текстовое поле)
  • Полное имя пользователя (Текстовое поле)
  • Рабочий адрес электронной почты Идентификатор (Текстовое поле)
  • Желаемый пароль (Текстовое поле)
  • Телефон номер пользователя (Текстовое поле)
  • Условия и Политика конфиденциальности (флажок)
  • Бесплатная регистрация (кнопка)

Рабочий Процесс Страницы Регистрации

Введите все необходимые поля: Полное имя, Рабочий адрес электронной почты, Желаемый Пароль, Номер телефона, Условия и флажок Политики конфиденциальности.

Проверьте поля:

  1. Рабочий адрес электронной почты: Не должен быть существующим пользователем, действительный адрес электронной почты.
  2. Пароль: Должен содержать минимально необходимую длину пароля.
  3. номер телефона
  4. Флажок “Условия и политика конфиденциальности”

До сих пор мы обсуждали все основные моменты, касающиеся страницы регистрации, в частности, связанные с страницей регистрации LambdaTest . Итак, давайте продолжим написание тестовых примеров для этой страницы.

Возможные сценарии тестирования Страницы регистрации

Элементы

Проверьте, все ли кнопки, заголовок, флажки присутствуют на странице и работают ли они, нажав на все кнопки и флажки. В случае страницы регистрации лямбда-теста мы должны проверить следующие кнопки, текстовые поля, флажок “Условия и политика конфиденциальности” и т.д.

Связи

Проверьте, все ли ссылки, присутствующие на странице, перенаправляют на ожидаемые страницы. Нам также нужно проверить, если:

  • Лямбда-тест перенаправление ссылки на Лямбда-тест запускает правильную страницу.
  • Условия предоставления услуг ссылка открывает новую вкладку с перенаправлением на страницу Условий предоставления услуг.
  • Политика конфиденциальности ссылка открывает новую вкладку с перенаправлением на страницу Политики конфиденциальности.
  • Вход ссылка перенаправляет со страницы регистрации на страницу входа.

Необязательные Поля

В случае страницы регистрации Лямбда-теста необязательно указывать название организации или компании. Поэтому мы постараемся зарегистрироваться с указанием названия Организации или Компании и без него, и в обоих случаях должна быть возможность завершить регистрацию (учитывая, что пользователь правильно предоставил всю остальную информацию).

Обязательные поля

В случае страницы регистрации лямбда-теста у нас есть следующие обязательные поля, поэтому давайте обсудим случаи, связанные с каждым полем.

полное имя

→ Проверка без указания полного имени, она должна выдать соответствующую ошибку, и не должно быть возможности перейти дальше на страницу регистрации.

→ подтвердите, указав полное имя, должна быть возможность завершить регистрацию (учитывая, что пользователь правильно предоставил всю остальную информацию).

Рабочая электронная почта

→ Подтвердите действительный идентификатор электронной почты, но у вас есть существующая учетная запись на платформе LambdaTest с этим идентификатором электронной почты, тогда в этом случае вам не должно быть разрешено регистрироваться с этим идентификатором электронной почты и должно быть выдано соответствующее сообщение об ошибке (учитывая, что пользователь правильно предоставил всю остальную информацию).

→ Проверка без указания каких-либо подробностей в поле Рабочая электронная почта, ей не должно быть разрешено регистрироваться без какого-либо идентификатора электронной почты и должно быть выдано соответствующее сообщение об ошибке.

= Подтвердите действительный идентификатор электронной почты, у которого нет учетной записи на платформе тестирования Lambda с этим идентификатором электронной почты, поэтому пользователь должен иметь возможность успешно продолжить и зарегистрироваться (учитывая, что пользователь правильно предоставил всю остальную информацию).

Желаемый Пароль

→ Проверка без указания пароля в нужном поле пароля, он должен выдать соответствующее сообщение об ошибке для ввода пароля.

→ Как мы видим, для пароля требуется минимальная длина символов, которая составляет не менее 8 символов. Таким образом, мы можем использовать методику разработки тестов для анализа граничных значений (BVA), поскольку у нас есть минимальные критерии из 8 символов, поэтому мы можем тестировать с длиной 7, 8 и 9 символов.

  • Когда он меньше 7, он должен выдать ошибку пользователю, и пользователь может продолжить процесс регистрации.
  • Когда будет 8, пользователь сможет успешно завершить процесс регистрации без каких-либо ошибок. (учитывая, что пользователь правильно предоставил всю остальную информацию).
  • Когда будет 9, тогда также у пользователя должна быть возможность успешно завершить процесс регистрации без каких-либо ошибок. (учитывая, что пользователь правильно предоставил всю остальную информацию).

Телефон

→ Подтвердите, не указывая номер телефона в поле, так как это также обязательное поле, поэтому пользователь не должен иметь возможности продолжить и завершить регистрацию без указания номера телефона.

→ Подтвердите, указав неверный номер телефона (номер телефона с 2-3 цифрами), в этом случае также пользователь не сможет продолжить и завершить регистрацию с неверным номером телефона.

→ Подтвердите, указав действительный номер телефона в поле, в этом случае пользователь должен иметь возможность успешно зарегистрироваться с действительным номером телефона (учитывая, что пользователь правильно предоставил всю остальную информацию).

Флажок “Условия предоставления услуг”:

= Проверка без проверки флажка “Условия предоставления услуг”, так как это обязательное поле в процессе регистрации, пользователь не может продолжить процесс регистрации, не установив этот флажок.

→ Установлен флажок Проверить Условия предоставления услуг, после чего пользователь может успешно завершить регистрацию без каких-либо ошибок (учитывая, что пользователь правильно предоставил всю остальную информацию).

Так мы видели до сих пор

  • Какие поля обычно присутствуют на Странице регистрации, а также пример страницы регистрации LambdaTest.
  • Ожидаемый рабочий процесс страницы регистрации.
  • Тестовые примеры/сценарии для страницы регистрации

Автоматизация формы регистрации пользователей с использованием Selenium и Java

До сих пор в этом учебнике по Java Selenium вы четко представляли, что вам нужно протестировать на странице регистрации. Имея это в виду, давайте приступим к действиям и автоматизируем эту страницу регистрации, выполнив автоматическое тестирование Selenium с помощью Java и TestNG.

Теперь мы разработаем сценарии автоматизации Selenium и выполним их в онлайн-сетке Selenium. Мы также будем использовать возможности параллельного тестирования для ускорения нашего автоматизированного кроссбраузерного тестирования. Но прежде всего вы должны быть готовы к следующим предварительным условиям.

Предпосылки

Прежде чем перейти к сценарию, давайте рассмотрим некоторые основные предпосылки для написания и выполнения сценария тестирования Selenium Automation.

  1. JDK и JRE – Это необходимо для выполнения любой программы Java в нашей системе. Вы можете скачать его с официального сайта Oracle. Вы можете скачать его с официального сайта Oracle.
  1. Среда РАЗРАБОТКИ Eclipse – Мы использовали Eclipse для написания нашей программы или тестового сценария. Вы можете скачать его с официального сайта Eclipse или вы можете использовать любую другую ИДЕЮ по вашему выбору.
  1. Банки Selenium – Для написания любого сценария тестирования автоматизации Selenium в проекте должны быть банки Selenium. Вы можете скачать банки с селеном с официального сайта Selenium .
  2. Платформа TestNG/| – В следующем тестовом сценарии мы использовали платформу TestNG для тестирования автоматизации Selenium, которая поможет нам в создании отчетов о тестировании, приоритизации тестовых случаев, группировании тестовых случаев, а также для параллельного выполнения в разных браузерах. Вы можете либо загрузить банки TestNG, либо напрямую добавить их в Eclipse с Eclipse Marketplace, используя URL-адрес TestNG Eclipse или вы можете обратиться к Тестирование для загрузки .

В приведенном ниже примере мы интегрировали наш тестовый скрипт с Лямбда-тестом, инструментом кроссбраузерного тестирования. Интересно, почему мы запускаем наши тесты автоматизации Selenium на облачном инструменте тестирования Selenium, таком как Лямбда-тест?

Хотя Selenium позволяет автоматизировать тестирование веб-приложений в разных браузерах. Вы можете выполнять тестирование Selenium automation только в браузерах, установленных на вашем компьютере, где запущен локальный веб-драйвер. Теперь установка сотен браузеров и поддержка библиотеки для вашей собственной инфраструктуры Selenium может быть очень трудоемкой, не говоря уже о том, что это отнимает много времени.

Вот почему рекомендуется запускать автоматическое тестирование Selenium в онлайн-инструменте для тестирования селена , таком как Лямбда-тест, но это не единственная причина для этого. Лямбда-тест – это намного больше!

Что такое Лямбда-тест?

Лямбда-тест – это инструмент кроссбраузерного тестирования в облаке, который предлагает как ручное, так и автоматическое тестирование совместимости браузеров в сетке Selenium, состоящей из более чем 2000 реальных браузеров в облаке. LambdaTest позволяет выполнять параллельное тестирование, создавать подробные отчеты о тестировании Selenium automation, предоставляет вам записанное видео всего выполнения тестового сценария, а также возможность легко интегрировать ваш набор для тестирования Selenium automation с вашими любимыми инструментами CI/CD. Он также предлагает собственные плагины для Jenkins и многое другое.

Автоматическое Тестирование Selenium Для Страницы Регистрации С Помощью Лямбда-Теста

Итак, теперь давайте обсудим процесс интеграции нашего тестового сценария с лямбда-тестом и выполним его, чтобы увидеть результаты. В нашем тестовом сценарии selenium мы инициализируем веб-драйвер как,

WebDriver driver = new ChromeDriver();
Or 
WebDriver driver = new FirefoxDriver();
Or 
WebDriver driver = new EdgeDriver();

В то время как для начала, когда мы хотим запустить тестовый скрипт на сетке лямбда-теста Selenium, мы должны инициализировать веб-драйвер как

WebDriver driver = new RemoteWebDriver(new URL("https://" + username + ":" + accesskey + "@hub.lambdatest.com/wd/hub"),
DesiredCapabilities.firefox()); 

Теперь возникнет несколько вопросов, например, для чего нужны эти имя пользователя и ключ доступа? Таким образом, мы можем сгенерировать эти имя пользователя и ключ доступа из Генератора возможностей лямбда-теста .

Здесь, как только мы выберем ОС, браузер, версию веб-драйвера Selenium и т. Д., Мы сможем получить имя пользователя и ключ доступа для наших пользователей, которые мы можем использовать в тестовом сценарии.

Примечание: Чтобы сгенерировать это имя пользователя и ключ доступа, вы должны быть зарегистрированы и войти в свою учетную запись Lambda Test.

Поэтому после того, как мы сгенерируем эти имя пользователя и ключ доступа, мы сможем использовать их в нашем тестовом сценарии в интеграции с лямбда-тестом. Мы создали следующий тестовый сценарий для страницы регистрации/регистрации лямбда-теста, мы рассмотрели тестовые сценарии, которые мы обсуждали выше, как ручные тестовые случаи и сценарии.

При выполнении любых тестовых случаев автоматизации существует несколько общих шагов, которые необходимо выполнить в начале набора тестов, в то время как перед каждым тестовым случаем требуется выполнить несколько шагов, которые мы можем назвать предварительными условиями для тестового случая. Например: При выполнении каждого тестового случая нам нужно открыть браузер и перейти по целевому URL-адресу, прежде чем приступить к выполнению фактического тестового случая, удалить файлы cookie и т.д..

Для этой цели мы используем аннотации @BeforeClass и @BeforeMethod из тестирования, поэтому в нашем случае нам понадобится

  • чтобы установить несколько возможностей (браузер, платформа и т.д.)
  • Откройте браузер
  • Удалить файлы cookie
  • Откройте платформу лямбда-тестирования и перейдите на страницу регистрации
public String username = "yadneshshah91";  //your LambdaTest username
    public String accesskey = "1234ABCD";      //your LambdaTest access key
    public static RemoteWebDriver driver = null;
    public String gridURL = "@hub.lambdatest.com/wd/hub"; //LambdaTest Hub URL
    boolean status = false;


    //Setting up capabilities to run our test script
    @Parameters(value= {"browser","version"})
    @BeforeClass
    public void setUp(String browser, String version) throws Exception {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("browserName", browser);
        capabilities.setCapability("version", version);
        capabilities.setCapability("platform", "win10"); // If this cap isn't specified, it will just get the any available one
        capabilities.setCapability("build", "LambdaTestSampleApp");
        capabilities.setCapability("name", "LambdaTestJavaSample");
        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());
        }

    }

    //Opening browser with the given URL and navigate to Registration Page
    @BeforeMethod
    public void openBrowser()
    {
        driver.manage().deleteAllCookies();

        driver.get("https://www.lambdatest.com/");

        driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
        driver.manage().timeouts().pageLoadTimeout(15, TimeUnit.SECONDS);

        WebElement signUpButton = driver.findElement(By.xpath("//a[contains(text(),'Free Signup')]"));
        signUpButton.click(); 

    }

В приведенной выше части кода обратите внимание на объект DesiredCapabilities. Этот объект используется для настройки таких возможностей, как браузер, версия, операционная система и т.д., И дает команду сетке лямбда-тестов запускать тесты для требуемых конфигураций. Если вы хотите запускать тесты локально, то вам не обязательно нужен этот объект. , , затем мы открыли браузер, удалили файлы cookie, перешли на страницу по умолчанию лямбда-теста, а затем нажали кнопку Зарегистрироваться, чтобы перенаправить на нашу целевую страницу, которая является страницей регистрации.

То же самое относится и к операциям/задачам, которые необходимо выполнить в конце или после выполнения тестовых случаев. Например: Закрытие сеанса браузера и т.д.

Для этого мы использовали аннотации @AfterMethod или @AfterMethod из тестирования. Если вы новичок в тестировании, то я предлагаю вам прочитать нашу подробную статью о Аннотации TestNG .

// Closing the browser session after completing each test case
    @AfterClass
    public void tearDown() throws Exception {
       if (driver != null) {
            ((JavascriptExecutor) driver).executeScript("lambda-status=" + status);
            driver.quit();
        }
    } 

В приведенной выше части кода вы можете видеть, что мы закрыли сеанс браузера, который нам нужно делать после каждого тестового случая.

Как мы уже видели, что и как это работает до и после каждого тестового случая, теперь давайте выполним автоматизированное тестирование Selenium для тестовых случаев, рассмотренных выше. В любом тестовом сценарии автоматизации Selenium для выполнения каких-либо действий с элементами веб-страницы нам сначала нужно их найти. Для этого мы используем Локаторы селена .

Глубокое Погружение В Тестовые Случаи

Давайте рассмотрим наши тестовые примеры, чтобы понять наши тестовые сценарии, которые нам необходимо автоматизировать с помощью тестирования Selenium.

Тестовый случай 1

Чтобы проверить, доступны ли ожидаемые элементы на странице регистрации.

//Verifying elements on Registration page
    @Test
    public void verifyElemntsOnPageTest()
    {
        WebElement lambdaTestLogo = driver.findElement(By.xpath("//p[@class='signup-titel']"));
        lambdaTestLogo.isDisplayed();

        WebElement signUpTitle = driver.findElement(By.xpath("//p[@class='signup-titel']"));
        signUpTitle.isDisplayed();

        WebElement termsText = driver.findElement(By.xpath("//label[@class='woo']"));
        termsText.isDisplayed();

        WebElement loginLinkText = driver.findElement(By.xpath("//p[@class='login-in-link test-left']"));
        loginLinkText.isDisplayed();

    }

В приведенном выше тестовом примере функции verifyElemntsOnPageTest мы обнаружили несколько элементов, таких как логотип LambdaTest, заголовок регистрации, текст условий предоставления услуг и т.д. Для поиска веб-элементов мы можем использовать различные стратегии поиска, такие как идентификатор, XPath, селектор CSS, имя класса и т.д.. В приведенном выше случае мы обнаружили эти элементы с помощью XPath.

Как только эти элементы будут найдены, мы проверим каждый из них, отображаются ли они с помощью метода Отображается().

Тестовый случай 2

To verify the redirections with the links present on the pages.

//Verifying redirection to the terms and conditions page
    @Test
    public void termsRedirectionTest()
    {
        WebElement termsLink = driver.findElement(By.xpath("//a[contains(text(),'Terms')]"));
        termsLink.click();      

        Set  allWindows = driver.getWindowHandles();

        for(String handle : allWindows)
        {
            driver.switchTo().window(handle);
        }                   

        String expectedURL = "https://www.lambdatest.com/terms-of-service";
        String actualURL = driver.getCurrentUrl();
        //System.out.println(actualURL);
        Assert.assertEquals(actualURL, expectedURL);

        String expectedTitle = "Terms of Service - LambdaTest";
        String actualTitle = driver.getTitle();
        //System.out.println(actualTitle);
        Assert.assertEquals(actualTitle, expectedTitle);        
    }

//Verifying Privacy policy page redirection
    @Test
    public void privacyPolicyRedirectionTest()
    {
        WebElement privacyPolicyLink = driver.findElement(By.xpath("//a[contains(text(),'Privacy')]"));
        privacyPolicyLink.click();

        Set  allWindows = driver.getWindowHandles();

        for(String handle : allWindows)
        {
            driver.switchTo().window(handle);
        }                   

        String expectedURL = "https://www.lambdatest.com/privacy";
        String actualURL = driver.getCurrentUrl();
        //System.out.println(actualURL);
        Assert.assertEquals(actualURL, expectedURL);

        String expectedTitle = "Privacy Policy | LambdaTest";
        String actualTitle = driver.getTitle();
        //System.out.println(actualTitle);
        Assert.assertEquals(actualTitle, expectedTitle);
    }    

    //Verifying redirection to the Login page from Registration page
    @Test
    public void loginRedirectionTest()
    {
        WebElement loginLink = driver.findElement(By.xpath("//a[contains(text(),'Login')]"));
        loginLink.click();

        String expectedURL = "https://accounts.lambdatest.com/login";
        String actualURL = driver.getCurrentUrl();
        //System.out.println(actualURL);
        Assert.assertEquals(actualURL, expectedURL);

        String expectedTitle = "Login - LambdaTest";
        String actualTitle = driver.getTitle();
        //System.out.println(actualTitle);
        Assert.assertEquals(actualTitle, expectedTitle);        
    }

    //Verifying redirection to the landing page
    @Test
    public void landingPageRedirectionTest()
    {
        WebElement lambdaTestLogo = driver.findElement(By.xpath("//p[@class='logo-home']//a//img"));
        lambdaTestLogo.click();

        String expectedURL = "https://www.lambdatest.com/";
        String actualURL = driver.getCurrentUrl();
        Assert.assertEquals(actualURL, expectedURL);

        String expectedTitle = "";
    }

Итак, здесь вы можете видеть, что мы добавили 4 метода для различных ссылок, представленных на странице регистрации и мы проверили, что после нажатия на эти ссылки пользователь перенаправляется на правильный URL и страницу или нет. В описанных выше методах мы также добавили утверждения, чтобы проверить, выполняется ли перенаправление должным образом.

Тестовый случай 3

Для проверки процесса регистрации с предоставлением действительных входных данных.

// Registration with all valid data
    @Test
    public void validRegistrationTest(){            

        WebElement companyName = driver.findElement(By.name("organization_name"));
        companyName.sendKeys("TestCompany");

        WebElement fullName = driver.findElement(By.name("name"));
        fullName.sendKeys("TestName");

        WebElement email = driver.findElement(By.name("email"));
        email.sendKeys("test6.lambdatest@gmail.com");

        WebElement password = driver.findElement(By.name("password"));
        password.sendKeys("Test@12345");

        WebElement phone = driver.findElement(By.name("phone"));
        phone.sendKeys("9876543210");

        WebElement termsOfServices = driver.findElement(By.id("terms_of_service"));
        termsOfServices.click();

        WebElement signUp = driver.findElement(By.xpath("//button[contains(@class,'btn sign-up-btn-2 btn-block')]"));
        signUp.click();

        String expectedURL = "https://accounts.lambdatest.com/email/verify";
        String actualURL = driver.getCurrentUrl();
        Assert.assertEquals(actualURL, expectedURL);

        String expectedTitle = "Verify Your Email Address - LambdaTest";
        String actualTitle = driver.getTitle();
        Assert.assertEquals(actualTitle, expectedTitle);

    }

Тестовый случай 4

Для проверки процесса регистрации с различными неверными входными данными.

// Registration without providing Company Name field
    @Test
    public void emptyCompanyNameTest()
    {
         WebElement companyName = driver.findElement(By.name("organization_name"));
         companyName.sendKeys("");

         WebElement fullName = driver.findElement(By.name("name"));
         fullName.sendKeys("TestName");

         WebElement email = driver.findElement(By.name("email"));
         email.sendKeys("test7.lambdatest@gmail.com");

         WebElement password = driver.findElement(By.name("password"));
         password.sendKeys("Test@12345");

         WebElement phone = driver.findElement(By.name("phone"));
         phone.sendKeys("9876543210");

         WebElement termsOfServices = driver.findElement(By.id("terms_of_service"));
         termsOfServices.click();

         WebElement signUp = driver.findElement(By.xpath("//button[contains(@class,'btn sign-up-btn-2 btn-block')]"));
         signUp.click();         

        /*
         * Set  allWindows = driver.getWindowHandles();
         * 
         * for(String handle : allWindows) { driver.switchTo().window(handle); }
         */ 

         String expectedURL = "https://accounts.lambdatest.com/email/verify";
         String actualURL = driver.getCurrentUrl();
         Assert.assertEquals(actualURL, expectedURL);

         String expectedTitle = "Verify Your Email Address - LambdaTest";
         String actualTitle = driver.getTitle();
         Assert.assertEquals(actualTitle, expectedTitle);
    }

    // Registration without providing Name field
    @Test
    public void emptyNameTest()
    {
        WebElement companyName = driver.findElement(By.name("organization_name"));
        companyName.sendKeys("TestCompany");

        WebElement fullName = driver.findElement(By.name("name"));
        fullName.sendKeys("");

        WebElement email = driver.findElement(By.name("email"));
        email.sendKeys("test@test.com");

        WebElement password = driver.findElement(By.name("password"));
        password.sendKeys("Test@123");

        WebElement phone = driver.findElement(By.name("phone"));
        phone.sendKeys("9876543210");

        WebElement termsOfServices = driver.findElement(By.id("terms_of_service"));
        termsOfServices.click();

        WebElement signUp = driver.findElement(By.xpath("//button[contains(@class,'btn sign-up-btn-2 btn-block')]"));
        signUp.click();

        String expectedErrorMsg = "Please enter your Name";

        WebElement exp = driver.findElement(By.xpath("//p[contains(text(),'Please enter your Name')]"));
        String actualErrorMsg = exp.getText();

        Assert.assertEquals(actualErrorMsg, expectedErrorMsg);

    }

    // Registration without providing user email field
    @Test
    public void emptyEmailTest()
    {
        WebElement companyName = driver.findElement(By.name("organization_name"));
        companyName.sendKeys("TestCompany");

        WebElement fullName = driver.findElement(By.name("name"));
        fullName.sendKeys("test");

        WebElement email = driver.findElement(By.name("email"));
        email.sendKeys("");

        WebElement password = driver.findElement(By.name("password"));
        password.sendKeys("Test@123");

        WebElement phone = driver.findElement(By.name("phone"));
        phone.sendKeys("9876543210");

        WebElement termsOfServices = driver.findElement(By.id("terms_of_service"));
        termsOfServices.click();

        WebElement signUp = driver.findElement(By.xpath("//button[contains(@class,'btn sign-up-btn-2 btn-block')]"));
        signUp.click();

        String expectedErrorMsg = "Please enter your Email Address";

        WebElement exp = driver.findElement(By.xpath("//p[contains(text(),'Please enter your Email Address')]"));
        String actualErrorMsg = exp.getText();

        Assert.assertEquals(actualErrorMsg, expectedErrorMsg);
    }

    // Registration with email id which already have account
    @Test
    public void invalidEmailTest()
    {

        WebElement companyName = driver.findElement(By.name("organization_name"));
        companyName.sendKeys("TestCompany");

        WebElement fullName = driver.findElement(By.name("name"));
        fullName.sendKeys("TestName");

        WebElement email = driver.findElement(By.name("email"));
        email.sendKeys("test@test.com");

        WebElement password = driver.findElement(By.name("password"));
        password.sendKeys("Test@123");

        WebElement phone = driver.findElement(By.name("phone"));
        phone.sendKeys("9876543210");

        WebElement termsOfServices = driver.findElement(By.id("terms_of_service"));
        termsOfServices.click();

        WebElement signUp = driver.findElement(By.xpath("//button[contains(@class,'btn sign-up-btn-2 btn-block')]"));
        signUp.click();

        String expectedErrorMsg = "This email is already registered";

        WebElement exp = driver.findElement(By.xpath("//p[@class='error-mass']"));
        String actualErrorMsg = exp.getText();

        Assert.assertEquals(actualErrorMsg, expectedErrorMsg);
    }

    // Registration without providing password field
    @Test
    public void emptyPasswordTest()
    {
        WebElement companyName = driver.findElement(By.name("organization_name"));
        companyName.sendKeys("TestCompany");

        WebElement fullName = driver.findElement(By.name("name"));
        fullName.sendKeys("TestName");

        WebElement email = driver.findElement(By.name("email"));
        email.sendKeys("test@test.com");

        WebElement password = driver.findElement(By.name("password"));
        password.sendKeys("");

        WebElement phone = driver.findElement(By.name("phone"));
        phone.sendKeys("9876543210");

        WebElement termsOfServices = driver.findElement(By.id("terms_of_service"));
        termsOfServices.click();

        WebElement signUp = driver.findElement(By.xpath("//button[contains(@class,'btn sign-up-btn-2 btn-block')]"));
        signUp.click();

        String expectedErrorMsg = "Please enter a desired password";

        WebElement exp = driver.findElement(By.xpath("//p[contains(text(),'Please enter a desired password')]"));
        String actualErrorMsg = exp.getText();

        Assert.assertEquals(actualErrorMsg, expectedErrorMsg);
    }

    // Registration with invalid password
    @Test
    public void inValidPasswordTest()
    {
        WebElement companyName = driver.findElement(By.name("organization_name"));
        companyName.sendKeys("TestCompany");

        WebElement fullName = driver.findElement(By.name("name"));
        fullName.sendKeys("TestName");

        WebElement email = driver.findElement(By.name("email"));
        email.sendKeys("test@test.com");

        WebElement password = driver.findElement(By.name("password"));
        password.sendKeys("T");

        WebElement phone = driver.findElement(By.name("phone"));
        phone.sendKeys("9876543210");

        WebElement termsOfServices = driver.findElement(By.id("terms_of_service"));
        termsOfServices.click();

        WebElement signUp = driver.findElement(By.xpath("//button[contains(@class,'btn sign-up-btn-2 btn-block')]"));
        signUp.click();

        String expectedErrorMsg = "Password should be at least 8 characters long";

        WebElement exp = driver.findElement(By.xpath("//p[contains(text(),'Password should be at least 8 characters long')]"));
        String actualErrorMsg = exp.getText();

        Assert.assertEquals(actualErrorMsg, expectedErrorMsg);
        //Password should be at least 8 characters long
    }

    // Registration without providing user phone number field
    @Test
    public void emptyPhoneTest()
    {
        WebElement companyName = driver.findElement(By.name("organization_name"));
        companyName.sendKeys("TestCompany");

        WebElement fullName = driver.findElement(By.name("name"));
        fullName.sendKeys("TestName");

        WebElement email = driver.findElement(By.name("email"));
        email.sendKeys("test@test.com");

        WebElement password = driver.findElement(By.name("password"));
        password.sendKeys("Test@123");

        WebElement phone = driver.findElement(By.name("phone"));
        phone.sendKeys("");

        WebElement termsOfServices = driver.findElement(By.id("terms_of_service"));
        termsOfServices.click();

        WebElement signUp = driver.findElement(By.xpath("//button[contains(@class,'btn sign-up-btn-2 btn-block')]"));
        signUp.click();

        String expectedErrorMsg = "The phone field is required.";

        WebElement exp = driver.findElement(By.xpath("//p[contains(text(),'The phone field is required.')]"));
        String actualErrorMsg = exp.getText();

        Assert.assertEquals(actualErrorMsg, expectedErrorMsg);
    }

    // Registration with providing invalid user phone number field
    @Test
    public void inValidPhoneTest()
    {
        WebElement companyName = driver.findElement(By.name("organization_name"));
        companyName.sendKeys("TestCompany");

        WebElement fullName = driver.findElement(By.name("name"));
        fullName.sendKeys("TestName");

        WebElement email = driver.findElement(By.name("email"));
        email.sendKeys("test@test.com");

        WebElement password = driver.findElement(By.name("password"));
        password.sendKeys("Test@123");

        WebElement phone = driver.findElement(By.name("phone"));
        phone.sendKeys("98");

        WebElement termsOfServices = driver.findElement(By.id("terms_of_service"));
        termsOfServices.click();

        WebElement signUp = driver.findElement(By.xpath("//button[contains(@class,'btn sign-up-btn-2 btn-block')]"));
        signUp.click();

        String expectedErrorMsg = "Please enter a valid Phone number";

        WebElement exp = driver.findElement(By.xpath("//p[contains(text(),'Please enter a valid Phone number')]"));
        String actualErrorMsg = exp.getText();

        Assert.assertEquals(actualErrorMsg, expectedErrorMsg);

        //Please enter a valid Phone number
    }

    // Registration without accepting terms and condition tickbox
    @Test
    public void uncheckedTerms()
    {
        WebElement companyName = driver.findElement(By.name("organization_name"));
        companyName.sendKeys("TestCompany");

        WebElement fullName = driver.findElement(By.name("name"));
        fullName.sendKeys("TestName");

        WebElement email = driver.findElement(By.name("email"));
        email.sendKeys("test@test.com");

        WebElement password = driver.findElement(By.name("password"));
        password.sendKeys("Test@123");

        WebElement phone = driver.findElement(By.name("phone"));
        phone.sendKeys("9876543210");

        //WebElement termsOfServices = driver.findElement(By.id("terms_of_service"));
        //termsOfServices.click();

        WebElement signUp = driver.findElement(By.xpath("//button[contains(@class,'btn sign-up-btn-2 btn-block')]"));
        signUp.click();

        String expectedTermsErrorMessage = "To proceed further you must agree to our Terms of Service and Privacy Policy";
        WebElement uncheckedTermCheckbox = driver.findElement(By.xpath("//p[@class='error-mass mt-2']"));
        String actualTermsErrorMessage = uncheckedTermCheckbox.getText();
        //To proceed further you must agree to our Terms of Service and Privacy Policy

        Assert.assertEquals(actualTermsErrorMessage, expectedTermsErrorMessage);
    }

В приведенной выше части кода вы можете видеть, что мы рассмотрели различные случаи, когда то или иное поле содержит неверные входные данные. Кроме того, в конце каждого метода мы добавили утверждение вместе с ожидаемыми сообщениями об ошибках для предоставленных нами неверных входных данных.

Весь Тестовый Сценарий Для Автоматизации Регистрации С Использованием Selenium И Java

Поскольку мы видели сценарий тестирования Selenium automation и различные тестовые случаи по частям, теперь давайте объединим этот код, чтобы представить весь тестовый сценарий, который мы можем выполнить в нескольких браузерах, которые мы предоставляем в качестве параметра. Поэтому, пожалуйста, также обратитесь к testng.xml файл, который предоставляется в конце, что очень важно для параллельного выполнения тестирования Selenium automation в разных браузерах.

Сценарий автоматизированного тестирования для Страницы регистрации Лямбда-теста:

package com.lambdatest;


//TestNG Todo : Sample App
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
import org.testng.asserts.Assertion;

import com.beust.jcommander.Parameter;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.Set;
import java.util.concurrent.TimeUnit;

public class SignUpTest{

    public String username = "yadneshshah91";
    public String accesskey = "iD4oCZKyC8R2kwH1kLhTxAGgXZFANGoyzGDzY9RTqDTx9jskZo";
    public static RemoteWebDriver driver = null;
    public String gridURL = "@hub.lambdatest.com/wd/hub";
    boolean status = false;


    //Setting up capabilities to run our test script
    @Parameters(value= {"browser","version"})
    @BeforeClass
    public void setUp(String browser, String version) throws Exception {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("browserName", browser);
        capabilities.setCapability("version", version);
        capabilities.setCapability("platform", "win10"); // If this cap isn't specified, it will just get any available one
        capabilities.setCapability("build", "LambdaTestSampleApp");
        capabilities.setCapability("name", "LambdaTestJavaSample");
        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());
        }

    }

    //Opening browser with the given URL and navigate to Registration Page
    @BeforeMethod
    public void openBrowser()
    {
        driver.manage().deleteAllCookies();

        driver.get("https://www.lambdatest.com/");

        driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
        driver.manage().timeouts().pageLoadTimeout(15, TimeUnit.SECONDS);

        WebElement signUpButton = driver.findElement(By.xpath("//a[contains(text(),'Start Free Testing')]"));
        signUpButton.click(); 

    }

    //Verifying elements on Registration page
    @Test
    public void verifyElemntsOnPageTest()
    {
        WebElement lambdaTestLogo = driver.findElement(By.xpath("//p[@class='signup-titel']"));
        lambdaTestLogo.isDisplayed();

        WebElement signUpTitle = driver.findElement(By.xpath("//p[@class='signup-titel']"));
        signUpTitle.isDisplayed();

        WebElement termsText = driver.findElement(By.xpath("//label[@class='woo']"));
        termsText.isDisplayed();

        WebElement loginLinkText = driver.findElement(By.xpath("//p[@class='login-in-link test-left']"));
        loginLinkText.isDisplayed();

    }

    //Verifying redirection to the terms and conditions page
    @Test
    public void termsRedirectionTest()
    {
        WebElement termsLink = driver.findElement(By.xpath("//a[contains(text(),'Terms')]"));
        termsLink.click();      

        Set  allWindows = driver.getWindowHandles();

        for(String handle : allWindows)
        {
            driver.switchTo().window(handle);
        }                   

        String expectedURL = "https://www.lambdatest.com/terms-of-service";
        String actualURL = driver.getCurrentUrl();
        //System.out.println(actualURL);
        Assert.assertEquals(actualURL, expectedURL);

        String expectedTitle = "Terms of Service - LambdaTest";
        String actualTitle = driver.getTitle();
        //System.out.println(actualTitle);
        Assert.assertEquals(actualTitle, expectedTitle);        
    }

    //Verifying Privacy policy page redirection
    @Test
    public void privacyPolicyRedirectionTest()
    {
        WebElement privacyPolicyLink = driver.findElement(By.xpath("//a[contains(text(),'Privacy')]"));
        privacyPolicyLink.click();

        Set  allWindows = driver.getWindowHandles();

        for(String handle : allWindows)
        {
            driver.switchTo().window(handle);
        }                   

        String expectedURL = "https://www.lambdatest.com/privacy";
        String actualURL = driver.getCurrentUrl();
        //System.out.println(actualURL);
        Assert.assertEquals(actualURL, expectedURL);

        String expectedTitle = "Privacy Policy | LambdaTest";
        String actualTitle = driver.getTitle();
        //System.out.println(actualTitle);
        Assert.assertEquals(actualTitle, expectedTitle);
    }    

    //Verifying redirection to the Login page from Registration page
    @Test
    public void loginRedirectionTest()
    {
        WebElement loginLink = driver.findElement(By.xpath("//a[contains(text(),'Login')]"));
        loginLink.click();

        String expectedURL = "https://accounts.lambdatest.com/login";
        String actualURL = driver.getCurrentUrl();
        //System.out.println(actualURL);
        Assert.assertEquals(actualURL, expectedURL);

        String expectedTitle = "Login - LambdaTest";
        String actualTitle = driver.getTitle();
        //System.out.println(actualTitle);
        Assert.assertEquals(actualTitle, expectedTitle);        
    }

    //Verifying redirection to the landing page
    @Test
    public void landingPageRedirectionTest()
    {
        WebElement lambdaTestLogo = driver.findElement(By.xpath("//p[@class='logo-home']//a//img"));
        lambdaTestLogo.click();

        String expectedURL = "https://www.lambdatest.com/";
        String actualURL = driver.getCurrentUrl();
        Assert.assertEquals(actualURL, expectedURL);


    }

    // Registration with all valid data
    @Test
    public void validRegistrationTest(){            

        WebElement companyName = driver.findElement(By.name("organization_name"));
        companyName.sendKeys("TestCompany");

        WebElement fullName = driver.findElement(By.name("name"));
        fullName.sendKeys("TestName");

        WebElement email = driver.findElement(By.name("email"));
        email.sendKeys("test6.lambdatest@gmail.com");

        WebElement password = driver.findElement(By.name("password"));
        password.sendKeys("Test@12345");

        WebElement phone = driver.findElement(By.name("phone"));
        phone.sendKeys("9876543210");

        WebElement termsOfServices = driver.findElement(By.id("terms_of_service"));
        termsOfServices.click();

        WebElement signUp = driver.findElement(By.xpath("//button[contains(@class,'btn sign-up-btn-2 btn-block')]"));
        signUp.click();

        String expectedURL = "https://accounts.lambdatest.com/email/verify";
        String actualURL = driver.getCurrentUrl();
        Assert.assertEquals(actualURL, expectedURL);

        String expectedTitle = "Verify Your Email Address - LambdaTest";
        String actualTitle = driver.getTitle();
        Assert.assertEquals(actualTitle, expectedTitle);


    }

    // Registration without providing Company Name field
    @Test
    public void emptyCompanyNameTest()
    {
         WebElement companyName = driver.findElement(By.name("organization_name"));
         companyName.sendKeys("");

         WebElement fullName = driver.findElement(By.name("name"));
         fullName.sendKeys("TestName");

         WebElement email = driver.findElement(By.name("email"));
         email.sendKeys("test7.lambdatest@gmail.com");

         WebElement password = driver.findElement(By.name("password"));
         password.sendKeys("Test@12345");

         WebElement phone = driver.findElement(By.name("phone"));
         phone.sendKeys("9876543210");

         WebElement termsOfServices = driver.findElement(By.id("terms_of_service"));
         termsOfServices.click();

         WebElement signUp = driver.findElement(By.xpath("//button[contains(@class,'btn sign-up-btn-2 btn-block')]"));
         signUp.click();


        /*
         * Set  allWindows = driver.getWindowHandles();
         * 
         * for(String handle : allWindows) { driver.switchTo().window(handle); }
         */ 

         String expectedURL = "https://accounts.lambdatest.com/email/verify";
         String actualURL = driver.getCurrentUrl();
         Assert.assertEquals(actualURL, expectedURL);

         String expectedTitle = "Verify Your Email Address - LambdaTest";
         String actualTitle = driver.getTitle();
         Assert.assertEquals(actualTitle, expectedTitle);
    }

    // Registration without providing Name field
    @Test
    public void emptyNameTest()
    {
        WebElement companyName = driver.findElement(By.name("organization_name"));
        companyName.sendKeys("TestCompany");

        WebElement fullName = driver.findElement(By.name("name"));
        fullName.sendKeys("");

        WebElement email = driver.findElement(By.name("email"));
        email.sendKeys("test@test.com");

        WebElement password = driver.findElement(By.name("password"));
        password.sendKeys("Test@123");

        WebElement phone = driver.findElement(By.name("phone"));
        phone.sendKeys("9876543210");

        WebElement termsOfServices = driver.findElement(By.id("terms_of_service"));
        termsOfServices.click();

        WebElement signUp = driver.findElement(By.xpath("//button[contains(@class,'btn sign-up-btn-2 btn-block')]"));
        signUp.click();

        String expectedErrorMsg = "Please enter your Name";

        WebElement exp = driver.findElement(By.xpath("//p[contains(text(),'Please enter your Name')]"));
        String actualErrorMsg = exp.getText();

        Assert.assertEquals(actualErrorMsg, expectedErrorMsg);

    }

    // Registration without providing user email field
    @Test
    public void emptyEmailTest()
    {
        WebElement companyName = driver.findElement(By.name("organization_name"));
        companyName.sendKeys("TestCompany");

        WebElement fullName = driver.findElement(By.name("name"));
        fullName.sendKeys("test");

        WebElement email = driver.findElement(By.name("email"));
        email.sendKeys("");

        WebElement password = driver.findElement(By.name("password"));
        password.sendKeys("Test@123");

        WebElement phone = driver.findElement(By.name("phone"));
        phone.sendKeys("9876543210");

        WebElement termsOfServices = driver.findElement(By.id("terms_of_service"));
        termsOfServices.click();

        WebElement signUp = driver.findElement(By.xpath("//button[contains(@class,'btn sign-up-btn-2 btn-block')]"));
        signUp.click();

        String expectedErrorMsg = "Please enter your Email Address";

        WebElement exp = driver.findElement(By.xpath("//p[contains(text(),'Please enter your Email Address')]"));
        String actualErrorMsg = exp.getText();

        Assert.assertEquals(actualErrorMsg, expectedErrorMsg);
    }

    // Registration with email id which already have account
    @Test
    public void invalidEmailTest()
    {

        WebElement companyName = driver.findElement(By.name("organization_name"));
        companyName.sendKeys("TestCompany");

        WebElement fullName = driver.findElement(By.name("name"));
        fullName.sendKeys("TestName");

        WebElement email = driver.findElement(By.name("email"));
        email.sendKeys("test@test.com");

        WebElement password = driver.findElement(By.name("password"));
        password.sendKeys("Test@123");

        WebElement phone = driver.findElement(By.name("phone"));
        phone.sendKeys("9876543210");

        WebElement termsOfServices = driver.findElement(By.id("terms_of_service"));
        termsOfServices.click();

        WebElement signUp = driver.findElement(By.xpath("//button[contains(@class,'btn sign-up-btn-2 btn-block')]"));
        signUp.click();

        String expectedErrorMsg = "This email is already registered";

        WebElement exp = driver.findElement(By.xpath("//p[@class='error-mass']"));
        String actualErrorMsg = exp.getText();

        Assert.assertEquals(actualErrorMsg, expectedErrorMsg);
    }

    // Registration without providing password field
    @Test
    public void emptyPasswordTest()
    {
        WebElement companyName = driver.findElement(By.name("organization_name"));
        companyName.sendKeys("TestCompany");

        WebElement fullName = driver.findElement(By.name("name"));
        fullName.sendKeys("TestName");

        WebElement email = driver.findElement(By.name("email"));
        email.sendKeys("test@test.com");

        WebElement password = driver.findElement(By.name("password"));
        password.sendKeys("");

        WebElement phone = driver.findElement(By.name("phone"));
        phone.sendKeys("9876543210");

        WebElement termsOfServices = driver.findElement(By.id("terms_of_service"));
        termsOfServices.click();

        WebElement signUp = driver.findElement(By.xpath("//button[contains(@class,'btn sign-up-btn-2 btn-block')]"));
        signUp.click();

        String expectedErrorMsg = "Please enter a desired password";

        WebElement exp = driver.findElement(By.xpath("//p[contains(text(),'Please enter a desired password')]"));
        String actualErrorMsg = exp.getText();

        Assert.assertEquals(actualErrorMsg, expectedErrorMsg);
    }

    // Registration with invalid password
    @Test
    public void inValidPasswordTest()
    {
        WebElement companyName = driver.findElement(By.name("organization_name"));
        companyName.sendKeys("TestCompany");

        WebElement fullName = driver.findElement(By.name("name"));
        fullName.sendKeys("TestName");

        WebElement email = driver.findElement(By.name("email"));
        email.sendKeys("test@test.com");

        WebElement password = driver.findElement(By.name("password"));
        password.sendKeys("T");

        WebElement phone = driver.findElement(By.name("phone"));
        phone.sendKeys("9876543210");

        WebElement termsOfServices = driver.findElement(By.id("terms_of_service"));
        termsOfServices.click();

        WebElement signUp = driver.findElement(By.xpath("//button[contains(@class,'btn sign-up-btn-2 btn-block')]"));
        signUp.click();

        String expectedErrorMsg = "Password should be at least 8 characters long";

        WebElement exp = driver.findElement(By.xpath("//p[contains(text(),'Password should be at least 8 characters long')]"));
        String actualErrorMsg = exp.getText();

        Assert.assertEquals(actualErrorMsg, expectedErrorMsg);
        //Password should be at least 8 characters long
    }

    // Registration without providing user phone number field
    @Test
    public void emptyPhoneTest()
    {
        WebElement companyName = driver.findElement(By.name("organization_name"));
        companyName.sendKeys("TestCompany");

        WebElement fullName = driver.findElement(By.name("name"));
        fullName.sendKeys("TestName");

        WebElement email = driver.findElement(By.name("email"));
        email.sendKeys("test@test.com");

        WebElement password = driver.findElement(By.name("password"));
        password.sendKeys("Test@123");

        WebElement phone = driver.findElement(By.name("phone"));
        phone.sendKeys("");

        WebElement termsOfServices = driver.findElement(By.id("terms_of_service"));
        termsOfServices.click();

        WebElement signUp = driver.findElement(By.xpath("//button[contains(@class,'btn sign-up-btn-2 btn-block')]"));
        signUp.click();

        String expectedErrorMsg = "The phone field is required.";

        WebElement exp = driver.findElement(By.xpath("//p[contains(text(),'The phone field is required.')]"));
        String actualErrorMsg = exp.getText();

        Assert.assertEquals(actualErrorMsg, expectedErrorMsg);
    }

    // Registration with providing invalid user phone number field
    @Test
    public void inValidPhoneTest()
    {
        WebElement companyName = driver.findElement(By.name("organization_name"));
        companyName.sendKeys("TestCompany");

        WebElement fullName = driver.findElement(By.name("name"));
        fullName.sendKeys("TestName");

        WebElement email = driver.findElement(By.name("email"));
        email.sendKeys("test@test.com");

        WebElement password = driver.findElement(By.name("password"));
        password.sendKeys("Test@123");

        WebElement phone = driver.findElement(By.name("phone"));
        phone.sendKeys("98");

        WebElement termsOfServices = driver.findElement(By.id("terms_of_service"));
        termsOfServices.click();

        WebElement signUp = driver.findElement(By.xpath("//button[contains(@class,'btn sign-up-btn-2 btn-block')]"));
        signUp.click();

        String expectedErrorMsg = "Please enter a valid Phone number";

        WebElement exp = driver.findElement(By.xpath("//p[contains(text(),'Please enter a valid Phone number')]"));
        String actualErrorMsg = exp.getText();

        Assert.assertEquals(actualErrorMsg, expectedErrorMsg);

        //Please enter a valid Phone number
    }

    // Registration without accepting terms and condition tickbox
    @Test
    public void uncheckedTerms()
    {
        WebElement companyName = driver.findElement(By.name("organization_name"));
        companyName.sendKeys("TestCompany");

        WebElement fullName = driver.findElement(By.name("name"));
        fullName.sendKeys("TestName");

        WebElement email = driver.findElement(By.name("email"));
        email.sendKeys("test@test.com");

        WebElement password = driver.findElement(By.name("password"));
        password.sendKeys("Test@123");

        WebElement phone = driver.findElement(By.name("phone"));
        phone.sendKeys("9876543210");

        //WebElement termsOfServices = driver.findElement(By.id("terms_of_service"));
        //termsOfServices.click();

        WebElement signUp = driver.findElement(By.xpath("//button[contains(@class,'btn sign-up-btn-2 btn-block')]"));
        signUp.click();

        String expectedTermsErrorMessage = "To proceed further you must agree to our Terms of Service and Privacy Policy";
        WebElement uncheckedTermCheckbox = driver.findElement(By.xpath("//p[@class='error-mass mt-2']"));
        String actualTermsErrorMessage = uncheckedTermCheckbox.getText();
        //To proceed further you must agree to our Terms of Service and Privacy Policy

        Assert.assertEquals(actualTermsErrorMessage, expectedTermsErrorMessage);
    }

    // Closing the browser session after completing each test case
    @AfterClass
    public void tearDown() throws Exception {
       if (driver != null) {
            ((JavascriptExecutor) driver).executeScript("lambda-status=" + status);
            driver.quit();
        }
    }
}

В приведенном выше примере тестового сценария вы можете заметить, что мы использовали параметризованную опцию для указания имени браузера и версии браузера, чтобы мы могли предоставить браузер и версию браузера в соответствии с нашими требованиями, на которых нам необходимо протестировать вышеуказанный тестовый сценарий. Мы также можем предоставить несколько браузеров и версий для параллельного выполнения нашего тестового сценария.

И для достижения этого нам нужно предоставить эти значения имени и версии браузера из testng.xml файл, который мы используем с каждым скриптом TestNG. Например, вы можете сослаться на следующее testng.xml в котором мы предоставили 2 браузера (Chrome и Firefox) с их соответствующими версиями.






  
  
  
    
      
    
   

  
  
  
    
      
    
   

    
  
  
    
      
    
   

  

Ниже приведен снимок окончательного выполнения, которое было запущено на тестовой платформе Lambda. Мы выполнили скрипт автоматизации кроссбраузерного тестирования в двух браузерах, таких как Google Chrome 77 и Mozilla Firefox 69.

Если вы посмотрите на панель мониторинга лямбда-теста автоматизация , вы сможете заметить несколько вкладок, представляющих различные типы журналов для вашего сценария автоматизации тестирования. Вы получаете вкладки для анализа журналов команд, сетевых журналов, необработанных журналов Selenium, метаданных и многого другого. Вы также получаете полную видеозапись вашего сценария кроссбраузерного тестирования на облачных серверах Lambda Test, а также скриншот по команде.

Это Было Все

Теперь вы можете перейти к автоматизации страницы регистрации с использованием Selenium и Java. В этом руководстве по Java Selenium мы рассмотрели процесс регистрации лямбда-теста. Мы подумали о разных тестовых случаях, скомпилировали тестовый сценарий для их выполнения, а затем сценарий Selenium Automation testing был проанализирован для параллельного запуска в разных браузерах.

Тестовые сценарии автоматизации Selenium были выполнены с использованием Selenium и Java с помощью платформы тестирования. В случае, если вы чувствуете, что я пропустил особые тестовые случаи, касающиеся страницы регистрации лямбда-теста, не стесняйтесь, дайте мне знать. Я весь внимание! Счастливого испытания. 🙂

Оригинал: “https://dev.to/ramitd1995/selenium-java-tutorial-automation-testing-of-user-signup-form-3kmg”