Исключения при выполнении тестов на огурец - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь запустить скрипт в Eclipse, используя драйвер Firefox и селен, используя формат огуречного огурца для BDD.Я получаю много исключений, когда я запускаю это на Junit, это мой код для файла Java следующим образом.

annotation.java

package annotation; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

import cucumber.annotation.en.Given; 
import cucumber.annotation.en.Then; 
import cucumber.annotation.en.When; 

public class annotation { 
   WebDriver driver = null; 
   @Given("^I am on Facebook login page$") 

   public void goToFacebook() { 
      driver = new FirefoxDriver(); 
      driver.navigate().to("https://www.facebook.com/"); 
   }

   @When("^I enter username as \"(.*)\"$") 
   public void enterUsername(String arg1) {   
      driver.findElement(By.id("email")).sendKeys(arg1); 
   }

   @When ("^I enter password as \"(.*)\"$") 
   public void enterPassword(String arg1) {
      driver.findElement(By.id("pass")).sendKeys(arg1);
      driver.findElement(By.id("u_0_v")).click(); 
   } 

   @Then("^Login should fail$") 
   public void checkFail() {  
      if(driver.getCurrentUrl().equalsIgnoreCase(
         "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
            System.out.println("Test1 Pass"); 
      } else { 
         System.out.println("Test1 Failed"); 
      } 
      driver.close(); 
   }

   @Then("^Relogin option should be available$") 
   public void checkRelogin() { 
      if(driver.getCurrentUrl().equalsIgnoreCase(
         "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
            System.out.println("Test2 Pass"); 
      } else { 
         System.out.println("Test2 Failed"); 
      } 
      driver.close(); 
   }
} 

Это исключения, которые я получаюкак только я выполню тест

Добавление: аннотация

# Так фон можно использовать для устранения повторяющихся шагов
Фон: [90m # annotation \ outline.feature: 4[0m Пользователь переходит на Facebook, учитывая, что я на странице входа в Facebook

# Сценарий с AND Сценарий: [90m # annotation \ outline.feature: 9 [0m [90mWhen [0m [90mI, введите имя пользователя как "[0m [90m [1mTOM [0m [90m »[0m [90m # annotation.enterUsername (String) [0m [1A [31mWhen [0m [31mI] введите имя пользователя как« [0m [31m [1mTOM [0m [31m »[0m [90m # аннотация].enterUsername (String) [0m [31mjava.lang.NullPointerException at annotation.annotation.enterUsername (annotation.java:22) в ✽. Когда я ввожу имя пользователя как «TOM» (annotation \ outline.feature: 10) [0m [90mAnd[0m [90mI введите пароль как «[0m [90m [1mJERRY [0m [90m» »[0m [90m # annotation.enterPassword (String) [0m [1A [36mAnd [0m [36mI] введите пароль как «[0m [36m [1mJERRY [0m [36m»] [0m [90m # annotation.enterPassword (String) [0m [90mThen [0m [90mLogin должен произойти сбой[0m [90m # annotation.checkFail () [0m [1A [36mThen [0m [36mLogin должен потерпеть неудачу] [0m [90m # annotation.checkFail () [0m

# Так фон можно использовать для устраненияповторяющиеся шаги
Фон: [90m # annotation \ outline.feature: 4 [0m Пользователь переходит на Facebook, учитывая, что я на странице входа в Facebook

# Сценарий с НО Сценарий: [90m # annotation \ outline.feature: 15 [0m [90mWhen [0m [90mI введите имя пользователя как «[0m [90m [1mTOM [0m [90m» »[0m [90m # annotation.enterUsername (String) [0m [1A [31mWhen [0m [31mI введите имя пользователя как«[0m [31m [1mTOM [0m [31m »[0m [90m # annotation.enterUsername (String) [0m [31mjava.lang.NullPointerException at annotation.annotation.enterUsername (annotation.java:22) в ✽. Когда я ввожу имя пользователя)как "TOM" (аннотация \ outline.feature: 16) [0m [90mAnd [0m [90mI введите пароль как "[0m [90m [1mJERRY [0m [90m» [0m [90m # аннотация].enterPassword (String) [0m [1A [36mAnd [0m [36mI] введите пароль как «[0m [36m [1mJERRY [0m [36m»] [0m [90m # annotation.enterPassword (String) [0m [90mThen [0m [90mLogin следует)fail [0m [90m # annotation.checkFail () [0m [1A [36mThen [0m [36mLogin должен завершиться с ошибкой [0m [90m # annotation.checkFail () [0m [90mBut [0m [90mRelogin опция должна быть доступна [0m [90m #]annotation.checkRelogin () [0m [1A [36mBut [0m [36mRelogin] должна быть доступна опция [0m [90m # annotation.checkRelogin () [0m

java.lang.NullPointerException в annotation.annotation.enterUsername (annotation).java: 22) в W. Когда я ввожу имя пользователя как «TOM» (annotation \ outline.feature: 10)

java.lang.NullPointerException в annotation.annotation.enterUsername (annotation.java:22) вHen.Когда я ввожу имя пользователя как «TOM» (аннотация \ outline.feature: 16)

Это мой файл outline.feature

Feature: annotation 
#This is how background can be used to eliminate duplicate steps 

Background: 
   User navigates to Facebook Given 
   I am on Facebook login page 

#Scenario with AND 
Scenario: 
   When I enter username as "TOM"
   And I enter password as "JERRY" 
   Then Login should fail 

#Scenario with BUT 
Scenario: 
   When I enter username as "TOM" 
   And I enter password as "JERRY" 
   Then Login should fail 
   But Relogin option should be available

Ответы [ 2 ]

0 голосов
/ 20 мая 2018

Я могу запустить ваши сценарии в моей системе. Можете ли вы поделиться зависимостью / файлами jar, которые вы используете.Кроме того, метод driver.close () в Тогда оператор (вход в систему должен произойти сбой) будет работать нормально для первого сценария, но во втором случае он закроет браузер до следующего Тогда (опция Relogin должна быть доступна), так что вы можете удалить этот метод закрытия.

0 голосов
/ 18 мая 2018

«Задано» должно быть первым ключевым словом в строке на шаге «Фон», например:

Background: User navigates to Facebook  
   Given I am on Facebook login page 
...