Как проверить страницу входа, на которой есть другие тесты? - PullRequest
0 голосов
/ 15 мая 2019

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

Я пытался перезапустить браузер для каждого теста, но я не думаю, что это идеально.

Страница входа

package com.ninja.pages;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;

public class LoginPage
{
   //  http://tutorialsninja.com/demo/index.php?route=account/login

   WebDriver driver;

   @FindBy(how = How.XPATH, using = "//input[@id='input-email']")
   WebElement email;

   @FindBy(how = How.XPATH, using = "//input[@id='input-password']")
   WebElement password;

   @FindBy(how = How.XPATH, using = "//input[@class='btn btn-primary']")
   WebElement login;

   @FindBy(how = How.XPATH, using = "//div[@class='alert alert-danger alert-dismissible']")
   WebElement warning;

   public LoginPage(
         WebDriver driver)
   {
      this.driver = driver;
   }

   public String getTitle()
   {
      return driver.getTitle();
   }

   public String doLoginValid(String email1, String pwd)
   {
      driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
      email.sendKeys(email1);
      password.sendKeys(pwd);

      login.click();
      return driver.getTitle();
   }

   public String doLoginInValid(String email1, String pwd)
   {
      driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
      email.sendKeys(email1);
      password.sendKeys(pwd);

      login.click();
      return warning.getText();
   }
}

LoginPageTest

package com.ninja.testcases;

import static org.junit.jupiter.api.Assertions.assertEquals;

import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.PageFactory;

import com.ninja.pages.LoginPage;
import com.ninja.util.BrowserFactory;

public class LoginPageTest
{
   static LoginPage loginPage;
   static WebDriver driver;

   @BeforeAll
   public static void makeConnection()
   {
      driver = BrowserFactory.stratBrowser("chrome");
      loginPage = PageFactory.initElements(driver, LoginPage.class);

   }

   @BeforeEach
   public void startWebsite()
   {
      BrowserFactory.startWebsite("http://tutorialsninja.com/demo/index.php?route=account/login");
      assertEquals("Account Login", loginPage.getTitle());
   }

   @Test
   public void testDoLoginValid01()
   {
      assertEquals("My Account", loginPage.doLoginValid("ram@gmail.com", "Ram@123"));
   }

   @Test
   public void testDoLoginInvalid02()
   {
      assertEquals("Warning: No match for E-Mail Address and/or Password.",
            loginPage.doLoginInValid("ramq@gmail.com", "Ram@123"));
   }

   @Test
   public void testDoLoginInvalid03()
   {
      assertEquals("Warning: No match for E-Mail Address and/or Password.",
            loginPage.doLoginInValid("ram@gmail.com", "Rama@123"));
   }
}

1 Ответ

1 голос
/ 15 мая 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...