Я использую 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.