为Selenium Web Driver设置相对路径

3

我是这样创建 Chrome driver 的:

System.setProperty("webdriver.chrome.driver",
            "C:\\Users\\ragnar_000\\IdeaProjects\\ProjectA\\src\\test\\resources\\chromedriver.exe");
webDriver = new ChromeDriver();

这段代码是在Windows平台上编写的。当我在Mac上运行它时,必须根据Mac平台编辑路径。

如何设置/检查路径以使其可以在所有平台上运行,例如只需要路径src/test/resources/chromedrivers.exe。


请参考以下链接:https://stackoverflow.com/questions/48853249/cucumber-java-and-selenium-where-to-place-driver-path-using-setproperty/48853340?noredirect=1#comment84710136_48853340 - Ankur Singh
3个回答

2
在您的项目下创建一个文件夹,并将chromedriver.exe复制到该文件夹中(例如:/resources/chromedrivers.exe)。
然后通过设置该文件夹的路径来完成。
String path = System.getProperty("user.dir");
System.out.println(path); 
System.setProperty("webdriver.chrome.driver",path+"\\resources\\chromedriver.exe");

我已经在Windows上尝试过,它可以正常工作。请尝试在Mac上运行。


0

回答这个问题有两种方法: 第一种:使用绝对路径。

Paths.get("." + File.separator + "folder" + File.separator + "chromedriver.exe"); //local project folder
Paths.get(System.getProperty("user.home") + File.separator + "folder" + 
File.separator + "chromedriver.exe"); //file in folder in user home dircetory

这是一个非常重复的问题。谷歌一下吧。

第二种方式:此设置需要存储在项目 *.properties 文件中,并在每个平台上重新加载此属性文件,而无需重写测试源代码。以“...driver.exe”结尾的任何路径在Unix或Mac上都不适用。此方法还提供了使用驱动程序路径字符串运行测试的可能性。

希望能有所帮助。


0

基于文档 https://www.selenium.dev/documentation/en/

WebDriver driver = new FirefoxDriver(); // for firefox

或者

WebDriver driver = new ChormeDriver(); // for chrome

应该有助于解决这个问题。 请确保您已经导入了相关的类。

import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接