使用Java的Selenium驱动程序插件
我得到了一个错误:使用Java的Selenium驱动程序插件,selenium,selenium-webdriver,Selenium,Selenium Webdriver,我得到了一个错误: The path to driver executable must be set by the webdriver.gecko.driver system property 然后我下载了geckodriver并设置了如下路径。之后,代码就可以正常工作了 但我的问题是,当我想使用selenium代码启动firefox时,是否每次(在每个程序中)都需要使用下面的代码 System.setProperty("webdriver.gecko.driver","<path t
The path to driver executable must be set by the webdriver.gecko.driver system property
然后我下载了geckodriver并设置了如下路径。之后,代码就可以正常工作了
但我的问题是,当我想使用selenium代码启动firefox时,是否每次(在每个程序中)都需要使用下面的代码
System.setProperty("webdriver.gecko.driver","<path to geckodriver.exe>");
WebDriver driver = new FirefoxDriver();
System.setProperty(“webdriver.gecko.driver”,”);
WebDriver=newfirefoxdriver();
您需要使用gecko驱动程序的原因是您的Firefox版本高于v47。因此,为了回答您的问题,如果您不想每次都使用gecko驱动程序,您需要将Firefox版本降级到47或更低
可以在此处找到以前的版本:
当我们使用Selenium 3.x时,geckodriver
和Mozilla Firefox浏览器
通过Selenium Java
绑定我们需要通过系统.setProperty
行配置测试环境。在下面找到详细信息以及您的答案
你的问题分为两部分,因此我将分两部分回答:
1.我是否需要在每个程序中每次都使用以下代码:
答复:
否
解释:
一旦我们通过DesiredCapabilities
类配置WebDriver
实例,即驱动程序
,驱动程序就能够进行相同的配置,直到其生命周期,这是通过您的自动化脚本控制的。因此,除非我们通过驱动程序显式调用quit()
方法,否则驱动程序实例将保持活动状态并携带配置。因此,在您的程序中,无论您选择通过调用close()
方法关闭浏览器实例多少次,您始终可以提到driver=new FirefoxDriver()
使用驱动程序中存储的配置反复打开新的浏览器会话
例如:
是的,如果要使用47以上版本的Firefox和3.0以上版本的selenium JAR,每次都必须使用setProperty(字符串键、字符串路径)
System.setProperty("webdriver.gecko.driver", "Path of geckodriver.exe");
或者,您可以使用DesiredCapabilities类设置配置路径
DesiredCapabilities des_capablity = DesiredCapabilities.firefox();
des_capablity.setCapability("marionette", true);
driver = new FirefoxDriver(des_capablity);
是的,每次程序运行时都必须执行该代码。你有没有试过在没有人的情况下运行它?您可以使用命令行选项“-Dproperty=value”设置此属性。java-Dwebdriver.gecko.driver=“path”SomeClass。然后它将可用于JVM中的类,而无需在代码中编写这一行。您可以像eclipse一样轻松地在IDE中设置变量。
package demo;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
public class Driver_Close_Initiate
{
static WebDriver driver;
public static void main(String[] args)
{
System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
DesiredCapabilities dc = DesiredCapabilities.firefox();
dc.setCapability("marionette", true);
driver = new FirefoxDriver(dc);
driver.get("https://google.com");
driver.close();
driver = new FirefoxDriver(dc);
driver.get("https://facebook.com");
driver.quit();
}
}
System.setProperty("webdriver.gecko.driver", "Path of geckodriver.exe");
DesiredCapabilities des_capablity = DesiredCapabilities.firefox();
des_capablity.setCapability("marionette", true);
driver = new FirefoxDriver(des_capablity);