Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Не запускаются автотесты


(Игорь Кожин) #1

Пытаюсь работать с Selenium WD, все сделал по инструкции, а тесты не запускаются.

Код теста:

//package com.example.tests;
import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
public class Test1 {
	private WebDriver driver;
	private String baseUrl;
	private boolean acceptNextAlert = true;
	private StringBuffer verificationErrors = new StringBuffer();

        @Before
	public void setUp() throws Exception {
		driver = new FirefoxDriver();
		baseUrl = "https://ru.wikipedia.org/";
		driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
	}

        @Test
	public void test1() throws Exception {
		driver.get(baseUrl + "/wiki/%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0");
		driver.findElement(By.id("searchInput")).clear();
		driver.findElement(By.id("searchInput")).sendKeys("Selenium");
		driver.findElement(By.id("searchButton")).click();
		driver.findElement(By.xpath("(//a[contains(text(),'Firefox')])[4]")).click();
	}

        @After
	public void tearDown() throws Exception {
		driver.quit();
		String verificationErrorString = verificationErrors.toString();
		if (!"".equals(verificationErrorString)) {
			fail(verificationErrorString);
		}
	}

	private boolean isElementPresent(By by) {
		try {
			driver.findElement(by);
			return true;
		} catch (NoSuchElementException e) {
			return false;
		}
	}

	private boolean isAlertPresent() {
		try {
			driver.switchTo().alert();
			return true;
		} catch (NoAlertPresentException e) {
			return false;
		}
	}

	private String closeAlertAndGetItsText() {
		try {
			Alert alert = driver.switchTo().alert();
			String alertText = alert.getText();
			if (acceptNextAlert) {
				alert.accept();
			} else {
				alert.dismiss();
			}
			return alertText;
		} finally {
			acceptNextAlert = true;
		}
	}
}

При попытки запустить тест через Run As -> JUnit Test, падает ошибка

‘Launching Test1’ has encountered a problem.
An internal error occurred during: “Launching Test1”.
java.lang.NullPointerException

В Интрнете решения не нашел. Подскажите, пожалуйста, что я делаю не так?


(Serhii Tanchenko) #2

как трудно читать неотформатированный код :cry:
на которой строке эксепшин вылез?
полный стектрейс можете добавить?


(Игорь Кожин) #3

До стектрейса не доходит (ошибка падает не во время выполнения теста, а при запуске). Прикрепил скрин.


(sidelnikovmike) #4

Больше похоже на ошибку из эклипса. А другие тесты запускаются? В этом и в других классах?


(Михаил Будаев) #5

А как именно ты запускаешь? как java application? или junit тест?


(Игорь Кожин) #6

Запускаю как JUnit test. Примечательно что данная ошибка возникла на всех трех компьютерах, на которых я попытался данный тест запустить.

Других тестов нет, это единственный.


(Aleksey) #7

По первой ссылки описаны симптомы, очень похожие на ваши: http://stackoverflow.com/questions/1250505/junit4-eclipse-an-internal-error-occured-during-launching


(sidelnikovmike) #8

А если написать еще один тест и попробовать? :smile:


(Игорь Кожин) #9

Помогло следующее решение

  1. Go to help
  2. Install New Software
  3. Work with: Juno
  4. Programming languages (expand it)
  5. Install Java Development Tools
  6. Restart

Спасибо.