我安装了Gecko驱动程序,因为我遇到了以下错误:“ java.lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver.gecko.driver系统属性设置;”
但是在应用代码后,我仍然遇到Gecko驱动程序错误。
下面是我的完整代码。请让我知道我在想什么。
val c = C()
c.run { // apply or with
D().foo() // accessible
}
D().foo() // not accessible
答案 0 :(得分:2)
要验证壁虎驱动程序是否与您当前的firefox&selenium版本兼容,请执行以下操作:
如果您使用的是Windows OS,请在 System32 上保存下载的gecko驱动程序,如果您使用的是Mac OSX,请 / usr / local / bin
java -jar selenium-server-standalone-3.13.0.jar
如果浏览器启动,则geckodriver与Firefox和Selenium版本的兼容性没有问题。
答案 1 :(得分:0)
JUnit使用的主入口点与您在此处定义的public static void main(String[] args)
方法不同,因此,如果执行测试,将不会执行System#setProperty
。
要为该类中的所有测试一次添加系统属性,您需要定义一个@BeforeClass
方法:
public class Pawan {
public static WebDriver driver;
@BeforeClass
static void init() {
System.setProperty("webdriver.firefox.marionette","C:\\Users\\Lalit-pc\\Desktop\\geckodriver-v0.21.0-win64\\geckodriver.exe");
}
//test cases here...
}
现在,出于开发目的,我建议将此变量设置为PATH环境变量(取决于OS)可访问的常量,而不是将其设置为系统属性。
答案 2 :(得分:0)
如果您不需要@BeforeClass注释,也可以在@Test中定义geckodriver:
@Test
public void test() {
System.setProperty("webdriver.firefox.marionette","C:\\Users\\Lalit-pc\\Desktop\\geckodriver-v0.21.0-win64\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("https://www.google.com/");
这也将起作用:)
答案 3 :(得分:0)
需要进行小的设置更改:(最新的Firefox浏览器)
public class Pawan {
public static WebDriver driver;
@BeforeClass
public static setup() {
System.setProperty("webdriver.gecko.driver","C:\\Users\\Lalit-pc\\Desktop\\geckodriver-v0.21.0-win64\\geckodriver.exe");
driver = new FirefoxDriver();
}
// Urs test here