自从我使用Firefox升级到3.0测试版以来,我就遇到了这个例外。
线程"main"中的异常java.lang.IllegalStateException:驱动程序的可执行路径必须由webdriver.gecko.driver系统属性
设置
现在看来,我们需要手动下载并设置驱动程序的路径,为Mozilla Firefox也像chromedriver。
你需要做的是:-
- 进入http://docs.seleniumhq.org/download/ 向下滚动到下载页面的"第三方驱动程序,绑定和插件"部分
- 点击Mozilla GeckoDriver并为您的操作系统下载(zip)最新版本v0.10.0。
- 解压到您想要的位置,即c:GeckoDriver GeckoDriver .exe
现在你需要设置系统属性并写以下几行来初始化FireFoxDriver对象:-
System.setProperty("webdriver.gecko。司机"、"C: GeckoDriver geckodriver.exe");
WebDriver = new FirefoxDriver();
driver.get("http://seleniumhq.com");
这是它!
试试下面的JAVA代码,它工作得很好
-
需要更新java的selenium和selenium驱动程序
-
更新firefox, firefox驱动程序
下面的代码"C:\Drivers\geckodriver.exe"是你的webdriver的路径
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class FirstTestCase {
public static void main(String[] args) {
// TODO Auto-generated method stub
//WebDriver driver =new FirefoxDriver();
System.setProperty("webdriver.gecko.driver", "C:\Drivers\geckodriver.exe");
FirefoxDriver driver = new FirefoxDriver();
driver.get("https://www.syncfusion.com/");
System.out.println("Successfully opened the website www.Syncfusion.com");
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
driver.quit();
}
}
System.setProperty("webdriver.gecko.driver","C://Program Files (x86)//geckodriver-v0.11.1-win64//geckodriver.exe");
String testurl = "http://www.seleniumhq.com";
WebDriver driver = new FirefoxDriver();
driver.get(testurl);
通常这种情况发生在FF版本高于45,这是当我们下载壁虎驱动程序(https://github.com/mozilla/geckodriver/releases)。在此之后,解压缩文件夹的内容,并将gecko驱动程序的exe文件拖放到这个文件夹(src/main/resources),如果您已经创建了一个maven项目。
我们使用System。setProperty提供chromedriver/idriver等的路径。下面是java.lang.System.setProperty()方法的声明:
public static String setProperty(String key, String value)
key:系统属性名
value:系统属性值
。System.setProperty("webdriver.chrome。司机"、"src/测试/资源/chromedriver.exe");
webdriver.chrome。驱动程序:Chrome驱动程序(系统属性名称)src/test/resources/chromedriver.exe: chromedriver路径(系统属性值)
当key为空时,通常会遇到IllegalArgumentException
公共类WaitTestCase {WebDriver司机;
@Test ()
public void TC_Wait(){
System.setProperty("webdriver.gecko.driver","C:\geckodriver.exe");
driver = new FirefoxDriver();
driver.get("http:\yahoo.com");
driver.quit();
}
}
package webdriver_Commands;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class FirefoxFacebook {
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.gecko.driver","C:\Driver\geckodriver.exe");
WebDriver driver=new FirefoxDriver();
driver.get("https:\www.google.com");
}
}