java .lang.NullPointerException при выполнении второго аннотированного метода @test с использованием Selenium TestNG и Java - PullRequest
0 голосов
/ 20 января 2020

java .lang.NullPointerException при выполнении второго аннотированного метода @test с использованием Selenium TestNG и Java

Пробный код:

public class Dropdown {
    WebDriver driver;

    @BeforeTest
    public void Lanchdriver()
    {
        System.setProperty("webdriver.chrome.driver", "C:\\Users\\admin\\Downloads\\chromedriver_win32\\chromedriver.exe");
        WebDriver driver =new ChromeDriver();
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.get("https://www.suzukimotorcycle.co.in/find-dealer");
        WebElement dropdown1= driver.findElement(By.xpath("//*[@id='dealer_touch_points']"));
        dropdown1.click();
        Select select = new Select (dropdown1);
        select .selectByVisibleText("Suzuki Premium Dealers");
    }
    @Test(priority=1)
    public void select_dealer()
    {
        WebElement State_Dropdown =driver.findElement(By.id("dealer_state"));
        Select State_Select =new Select (State_Dropdown);
        State_Select.selectByValue("27");
    }
}

Ошибка:

FAILED: select_dealer java.lang.NullPointerException at myNewPackage.Dropdown.select_dealer(Dropdown.java:47)

Ответы [ 2 ]

0 голосов
/ 28 января 2020

Обновите строку ниже метода beforeTest

WebDriver driver =new ChromeDriver();

до

driver =new ChromeDriver();

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

в вашем случае, после выполнения beforeMethod значение вашего драйвера стало нулевым. вот почему получение nullpointer в методе Test.

0 голосов
/ 20 января 2020

Вы уже объявили глобальный экземпляр WebDriver т.е. driver как в:

WebDriver driver;

Так что вам не нужно создавать больше экземпляров уровня метода WebDriver и продолжайте использовать тот же экземпляр WebDriver с глобальной областью действия, например driver.


Решение

Вам необходимо удалить слово WebDriver из строки WebDriver driver =new ChromeDriver(); в методе select_dealer(). Следовательно, эффективно ваша строка кода будет:

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