在不同 computers/paths 上使用的 Selenium 网络驱动程序

Selenium webdrivers used on different computers/paths

我正在和其他几个人一起做一个项目,我们使用 Selenium 进行自动化测试。我们使用 Git 来共享我们的代码,但每次我们签入它时,我们都需要更新驱动程序的路径,因为它们存在于每台计算机上。

看起来像这样:

System.setProperty("webdriver.chrome.driver","C:/Path/chromedriver.exe");
driver = new ChromeDriver();

我们已经尝试搜索了很长时间,仍然无法找到解决问题的方法。

您只需告诉 git 假定文件未更改。

这也称为暂时忽略文件。

你不想放在.git忽略因为你还需要这个文件,你只需要告诉git暂时不要关注它,所以git 如果它在本地为您更改,将忽略它。

关于如何从命令行执行此操作,有一个很好的指南 here,或者如果您使用 TortoiseGit 之类的东西,您可以通过以下方式执行此操作:

  1. 检查本地更改文件所在的文件夹中的修改。您可以通过右键单击文件夹 -> TortoiseGit -> 检查修改来执行此操作。

  1. 选择您要暂时忽略的文件,"Assume Unchanged"将出现在选项中。

请注意,这需要在每台本地计算机上完成,因为每个人都希望忽略他们对文件所做的更改。

另请注意,如果您需要经常检查与路径相同的文件的更改,我建议从不需要经常检查的单独文件中注入路径。

一个带有单独常量 class 的简单示例可能如下所示:

SeleniumSettings.java

public class SeleniumSettings {
    public static final String CHROME_DRIVER_PATH = "C:/Path/chromedriver.exe";
}

然后在您原来的 class 中,您可以按以下方式调用您的 属性 setter:

System.setProperty("webdriver.chrome.driver",SeleniumSettings.CHROME_DRIVER_PATH);
driver = new ChromeDriver();

或者:你可以创建一个包含默认配置的模板文件,然后每个人都复制模板并调整自己的路径,并根据模板调整文件可以添加到 .gitignore 文件,因为仍然会为每个人提取模板。

将其放在项目的文件夹中,并仅提供相对路径。 所以它有点像:

System.setProperty("webdriver.chrome.driver","webdrivers/chromedriver.exe");

所以这里可以看到webdrivers是你当前项目下的一个文件夹。所以每个人都可以提供这个相对路径,一旦你将 chromedriver 签入给定文件夹中的 git,它就不会再要求 chromedriver 了。但请记住在整个团队中保持 chromedriver 版本唯一。