Мой XML-файл, похоже, не передает значения в мой код. В результате мои тесты будут пропущены - PullRequest
0 голосов
/ 02 мая 2019

Я настраиваю тестовые случаи для практики и пытаюсь передать параметры из файла XML для URL-адреса веб-сайта и желаемого браузера, если он доступен. Логика Switch и команды webdriver выглядят убедительно, но, возможно, я пропустил что-то, что заставляет их полностью их пропустить. Выводить, что вход в систему был успешным в обоих случаях.

В прошлом я просто передавал данные в виде переменных, это моя первая попытка обработки данных в xml.

публичный класс NewTest {

Драйвер WebDriver;

@ Test (DataProvider = "GetData") public void login (Строковое имя пользователя, Строковый пароль) {
// Код для входа в приложение

driver.findElement(By.xpath("//*[@id=\'myNavbar\']/ul/li[4]/a")).click();
driver.findElement(By.id("usernameLogin")).sendKeys(username);
driver.findElement(By.id("passwordLogin")).sendKeys(password);
driver.findElement(By.id("login")).click();

   try
            {
                 //verifying the presence of webelement
````````````````````````````````````````````
    new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.id("topMenu2")));
    System.out.println("login success");
                }
    catch(Exception e)
                {
    System.out.println("Login failure");

                }
    driver.findElement(By.id("topMenu2")).click();

          }


  @DataProvider
  public Object[][]getData() {
      Object[][]data=new Object[2][2];
      data[0][0]="pgGru";
      data[0][1]="freezeray";
      data[1][0]="pgAlmacho";
      data[1][1]="freezeray";
      return data;  
  }


  @BeforeSuite  
  @Parameters({ "browsername", "url" })
  public void setup(@Optional("Firefox")String browsername,String url) {    
    switch (browsername) {
    case "IE":
    WebDriver driver1;
    driver1 = new InternetExplorerDriver();
    System.setProperty("webdriver.IEDriverServer.driver", "D:\\Jarrrs\\Drivers\\IEDriverServer_win32");
    driver1.get(url);
    break;
    case "Firefox":
    WebDriver driver2;
    driver2 = new FirefoxDriver();
    System.setProperty("webdriver.geckodriver.driver","D:\\Jarrrs\\Drivers\\gecfkoDriver_win32");
    driver2.get(url);
    break;
    case "chrome":
    WebDriver driver3;
    driver3 = new ChromeDriver();
    System.setProperty("webdriver.chrome.driver, ","D:\\Jarrrs\\Drivers\\chromedriver_win32\\chromedriver.exe");
    driver3.get(url);
    break;  
    }   
  }


  @AfterSuite
  public void tearDown() {
    driver.quit();    
  }
}

Right now the output is it is skipping the test cases for login and password
Expecting two passed or failed tests. Either one would be nice.

1 Ответ

0 голосов
/ 03 мая 2019

Новичок здесь. Что вы подразумеваете под тестом? Действия внутри login () не выполняются? Я бы добавил операторы sys.out вместе с login (), чтобы проверить, выполняется ли код. Как насчет добавления паузы после загрузки страницы? Как насчет добавления жестко закодированного значения в поле имени пользователя и пароля, чтобы проверить, работает ли оно нормально? Иногда определенные поля не могут быть установлены с помощью кнопок Selenium. Необходимо использовать JavascriptExecutor для установки значений полей

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