При вызове методов цепочкой java.lang.NullPointerException

У меня получилосЬ?

1 лайк

Выглядит намного лучше :wink:

А у вас соучаем там где findElement - driver не null?

Покажите, как вы драйвер храните / передаете по пейджам. Скорее всего где-то теряется связь с объектом, потому и вылетает NPE.

я нигде драйвер дополнительно не храню(

строчка 76 класа Batch - можете ее прислать?

Вот, посмотрите пример использования PageObject pattern от @vmaximv
Обратите внимание на BasePage класс.

driver.findElement(By.xpath("//div[@id='grdOffResult']/table/tbody/tr["+ getRandomInt(15) +"]/td[11]/input")).click();
public int getRandomInt(int max){
	    return (int)(Math.random()*(max-1)+1);
	}

дебагером смотрели?
driver у Вас похоже null

мой еклипс зависает при дебаге((

Вы правы, драйвер - null

Ну вот.
Вам нужно получше продумать хранение инстанса driver. Чтобы он случайно не обнулялся

Ето пейдж обжекти или просто цепочний поиск елементов ?

вы не подкажите наглядные примеры как хранить драйвер?

Page Object

@ArtOfLife в одной из недавних тем рассказывал, как лучше строить хранение.
Сергей, не подскажешь , где?

Подскажу, час назад в текущей теме линк мелькал же :smile:
Более обобщенно из недавних только эта тема была.

в цепочних методах пейдж обджекта (тоесть если результатом перехода метода есть инстанс другого пейдж обджекта, например loginToHomePage() возвразает HomePage) Вам нужно на return new HomePage лупить, ну или PageFactory.initElements если Ви его используете. Я вижу с кода что Ви так и делаете, по етому думаю у вас просто webdriver неправально засетан. Как правило webdriver возвращаеться singleton фабрикой, ну конечно если у вас не grid тести

Печально че. IntellijIDEA не? есть же бесплатная комьюнити версия, для большинства задач автоматизации полностью подходит.

Так в этом случае же драйвер ведь выходит статическим, и вроде это как не самое ок решение, особоенно в условиях многопоточности

да так и есть, но думаю про многопоточность сейчас рано говорить, если null pointr-и при запуске)