Cucumber(Java)和Selenium:使用setProperty在何处放置驱动程序路径?
我正在使用Cucumber for Java和Selenium构建一个测试套件。我的项目结构大致如下:
- src/test/java:这是我实现测试步骤的地方李>
- src/test/resources/features:这里有功能文件李>
- src/test/resources/seleniumdrivers:这就是我放置chromedriver的地方。exe李>
现在,我做的是添加一个钩子。src/test/java中的java类,使用@Before钩子设置驱动程序路径的方法:
@Before
public void setUpDriver(){
System.setProperty("webdriver.chrome.driver", "src\\test\\resources\\seleniumdrivers\\chromedriver.exe");
}
但是,由于此方法将在每个场景之前运行,因此我想找到一种更好的方法来设置路径,因此它只执行一次。请注意,我希望将驱动程序放在我的项目结构中,并使用系统属性进行设置(我的意思是,我不希望将驱动程序放在文件系统中的某个位置,并将其添加到PATH环境变量中)
有更好的方法吗
# 1 楼答案
如果使用Maven,请在pom中添加这两个依赖项。xml,你会没事的,现在你可以删除系统了。设置建筑红线。有了这种技术,项目的硬编码方法就少了
你还需要添加这一行来设置它
# 2 楼答案
由于不想将其添加到PATH环境变量中,您可以将chromedriver二进制文件放置在文件系统中的任何位置(包括
src\\test\\resources\\seleniumdrivers\\
),并且仍然可以在System.setProperty()
中指定如下:# 3 楼答案
您可以将驱动程序保存在项目文件夹中,并使用
System.getProperty
获取该项目路径您可以尝试以下代码:-
# 4 楼答案
您可以创建一个属性文件,如
config.properties
,以存储在整个执行过程中使用的所有全局值,以及chromedriver.exe
的路径,并在所有场景之前读取它,并在整个执行过程中使用,如下所示