我一直在使用 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 驱动程序,它就像一个魅力。请帮助我了解如何使用 webdrivermanager 以便我可以使用 PhantomJS 驱动程序来无头执行我的 Selenium 代码。