Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

nullPointerException, хоте объект вроде бы есть.



Software-Testing.Ru - портал тестировщиков  

Новые темы форума тестировщиков


nullPointerException, хоте объект вроде бы есть.
2018-02-02 12:59

Здравствуйте.

Помогите, пожалуйста, новичку найти причину nullPointerException.

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

 

Код следующий:

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

import java.util.concurrent.TimeUnit;

public class TS0001_SignIn_SignOut {

private WebDriver driver;
public LoginPage loginPage;
public HomePage homePage;


@Before
public void SetUp() {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\IdeaProjects\\testselenium\\drivers\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.get("mysite.com");

}

@Test
public void SignInCorrectData_SignOut(){
loginPage.SignIn("username", "password");
homePage.SignOut();
}

пишет что в loginPage получается NullPointerException.

 

вот код с loginPage:

public class LoginPage {

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

private By usernameField = By.id("username");
private By passwordField = By.id("password");
private By signInButton = By.id("sign-in-button");


public void SignIn (String username, String password){
driver.findElement(usernameField).sendKeys(username);
driver.findElement(passwordField).sendKeys(password);
driver.findElement(signInButton).click();
}

Причем аналогичным образом создавал тест на другом сайте - все ок, никаких эксепшенов не выкидывал.



Export SeleniumWD Tests to .jar and start it in another PC
2018-02-02 15:13

Добрый день! 

Столкнулся с такой проблемой: 

Я джун (Java automation), совершенно без опыта, попал в команду разработчиков. 

Они всю жизнь работают на Питоне и о Джаве слышали только от третих лиц, поэтому совет был только один - Гугл. 

 

Написал тесты, все работает все супер, но не дальше моей IntelliJ IDEA (под win10).

Поднялся вопрос про экспорт например в .jar и возможность запуска на других машинах под Linux (предпочтительнее) и прям в терминале. 

Переписал вызов WebDriver под нужную ОС, экспортил следующим образом:

File -> ProjectStructure -> Artifacts ...
потом Build ->  BuildArtifacts ...

Получил свой .jar, скинул на Linux - открыли в терминале директорию с файлом и попытались его запустить. 

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

 

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

 

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

 

Отмечу следующие, чтоб понимали на чем собранно и что использовалось при написании тестов.

WinOS, Idea, Maven, в pom файле указал только две зависимости Selenium (3.8.1), jUnit (release). 

Сам тест очень простой, буквально на уровне "открыть сайт, проверить наличие элементов, проверить определенные данные - больше 0, закрыть).

По совету "умных" перекинул и сами тесты с main/test/java/... в main/java/... потому что main не было а без него не собирается проект в .jar

Manifest присутствует, вызов метода тоже.

 

Подскажите пожалуйста как ПРАВИЛЬНО писать тесты (в плане оформления самого проекта), чтоб потом на любой машине с консоли можно было стартануть мой .jar файлик и тесты отработали. Возможно в корне не с той стороны подход искать начал и нужно что-то сделать по другому, любому совету буду очень благодарен!

Прикрепленные изображения

  • Untitled 2018-02-02 14-12-38.jpg


© 2010 | Software-Testing.Ru


В избранное