Драйвер PhantomJS не вызывается при использовании WebDriverManager для моего кода Java - PullRequest
0 голосов
/ 27 декабря 2018

Я использую WebDriverManager для управления драйверами для моего файла класса, который, в свою очередь, используется в других файлах классов для тестирования с использованием Selenium.

Я использую maven для выполнения сборок, ниже приводится содержаниемой файл pom.xml:

<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-java</artifactId>
			<version>3.12.0</version>
		</dependency>
		<dependency>
			<groupId>org.testng</groupId>
			<artifactId>testng</artifactId>
			<version>6.9.8</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>io.github.bonigarcia</groupId>
			<artifactId>webdrivermanager</artifactId>
			<version>3.1.1</version>
			<scope>test</scope>
		</dependency>
</dependencies>

И ниже файл класса, который я использую для вызова драйверов:

    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.testng.annotations.BeforeTest;
    import io.github.bonigarcia.wdm.WebDriverManager;
    import io.github.bonigarcia.wdm.PhantomJsDriverManager;

    public abstract class GetDriver {

    // declare driver
    public WebDriver driver;

    // Assign the driver
    @BeforeTest
    public void WebdriverSetUp() {

        WebDriverManager.phantomjs().setup();
        driver = new PhantomJsDriver();
    }
   }

Теперь проблема заключается в том, что всякий раз, когда я пытаюсь добавитьДрайвер phantomjs с использованием следующих двух строк:

WebDriverManager.phantomjs().setup();
driver = new PhantomJSDriver();

Это дает мне ошибку, «PhantomJSDriver не может быть разрешен для типа».Eclipse предлагает мне выполнить любое из следующих исправлений:

Create class 'PhantomJSDriver' Change to 'WebDriver' (org.openqa.selenium) "Change to 'PhantomJsDriverManager' (io.github.bonigarcia.wdm)"

Когда я пытаюсь выбрать третье исправление, которое должно измениться на PhantomJsDriverManager, появляется другая ошибка

Type mismatch: cannot convert from PhantomJsDriverManager to WebDriver

Вновь для вышеуказанной ошибки Eclipse предлагает два исправления: Add cast to 'WebDriver' Change type of 'driver' to 'PhantomJsDriverManager'

Когда я выбираю второй вариант сверху, код меняется на

public abstract class GetDriver {

// declare driver
public PhantomJsDriverManager driver;

// Assign the driver
@BeforeTest
public void WebdriverSetUp() {

    WebDriverManager.phantomjs().setup();
    driver = new PhantomJsDriverManager();
    }
}

После вышеуказанного изменения я теперь получаю сообщение об ошибке «Конструктор PhantomJsDriverManager () не отображается».

Эта проблема возникает только для драйвера PhantomJs.Я попробовал с Chrome Driver, и он работал как шарм.Пожалуйста, помогите мне, как я могу использовать webdrivermanager, чтобы я мог использовать драйвер PhantomJS для безголового выполнения моего кода Selenium.

1 Ответ

0 голосов
/ 30 декабря 2018

Мне пришлось отказаться от использования WebDriverManager для PhantomJS, и вместо этого я использовал драйвер Chrome с Chrome без головы.Это решило проблемы, с которыми я столкнулся, и, наконец, я смог провести тестирование через Jenkins без каких-либо проблем.

...