【问题标题】:Set relative path for selenium web driver设置 selenium web 驱动程序的相对路径
【发布时间】:2020-04-04 16:56:55
【问题描述】:
我这样创建 chrome 驱动程序:
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 一样
【问题讨论】:
标签:
java
selenium-webdriver
【解决方案1】:
在您的项目下创建一个文件夹并将 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 上工作。
【解决方案2】:
回答这个问题的两种方法:
第一:使用绝对路径。
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。这种方式也提供了带有驱动程序路径字符串的可行性运行测试。
希望对你有帮助。
【解决方案3】:
基于文档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;