Как объявить глобальные переменные, используя TestNG / Selenium / Java? - PullRequest
0 голосов
/ 25 сентября 2018

Я абсолютно новичок в автоматизированном тестировании.В целях практики я хочу создать тесты для контактной формы в Selenium с TestNG. Это страница , которую я использую для практики.Я создал несколько тестовых случаев, но я не уверен, как объявить переменные, которые я буду вызывать позже (в том же классе).Код ниже, я хотел бы объявить «Email», «ErrorField» и «SendButton» - все предложения очень ценятся, так как я пробовал несколько способов, и я получаю ошибки.

public class FormValidation {
  protected static WebDriver driver;

  @BeforeTest()
  public void beforeTest() {
    System.setProperty("webdriver.chrome.driver", "C://chromedriver.exe");
  }

  @Test(priority = 0)
  public void blankFormTest() {
    driver = new ChromeDriver();
    driver.get("http://automationpractice.com/index.php?controller=contact");

    WebElement SendButton = driver.findElement(By.id("submitMessage"));
    SendButton.click();
    WebElement ErrorField = driver.findElement(By.xpath("//*[@id=\"center_column\"]/div/ol/li"));
    {
      Assert.assertEquals(ErrorField.getText(), "Invalid email address.");

    }
  }

  @Test(priority = 1)
  public void correctEmailonly() {
    WebElement Email = driver.findElement(By.id("email"));
    Email.sendKeys("kasiatrzaska@o2.pl");
    WebElement SendButton = driver.findElement(By.id("submitMessage"));
    SendButton.click();
    WebElement ErrorField = driver.findElement(By.xpath("//*[@id=\"center_column\"]/div/ol/li"));
    {
      Assert.assertEquals(ErrorField.getText(), "The message cannot be blank.");
    }

  }
}

1 Ответ

0 голосов
/ 26 сентября 2018

Вы можете сделать это с помощью По объявлению (POM Way) , то есть объявить его один раз и вызывать несколько раз.Это применимо для того же класса и другого класса также.Вы можете получить доступ к нему в другом классе с помощью публичного объявления.

public class FormValidation {
  protected static WebDriver driver;

  By errorField = By.xpath("//*[@id=\"center_column\"]/div/ol/li");
  By sendButton = By.id("submitMessage");
  By email = By.id("email");


  @BeforeTest()
  public void beforeTest() {
    System.setProperty("webdriver.chrome.driver", "C://chromedriver.exe");
  }

  @Test(priority = 0)
  public void blankFormTest() {
    driver = new ChromeDriver();
    driver.get("http://automationpractice.com/index.php?controller=contact");

    WebElement SendButton = driver.findElement(sendButton);
    SendButton.click();
    WebElement ErrorField = driver.findElement(errorField);
    {
      Assert.assertEquals(ErrorField.getText(), "Invalid email address.");

    }
  }

  @Test(priority = 1)
  public void correctEmailonly() {
    WebElement Email = driver.findElement(email);
    Email.sendKeys("kasiatrzaska@o2.pl");
    WebElement SendButton = driver.findElement(sendButton);
    SendButton.click();
    WebElement ErrorField = driver.findElement(errorField);
    {
      Assert.assertEquals(ErrorField.getText(), "The message cannot be blank.");
    }    
  }

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