【问题标题】:Selenium webdrivers used on different computers/pathsSelenium webdrivers 用于不同的计算机/路径
【发布时间】:2015-04-10 14:50:25
【问题描述】:

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

看起来像这样:

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

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

【问题讨论】:

    标签: java git testing selenium webdriver


    【解决方案1】:

    你只需要告诉 git 假设文件没有改变。

    这也称为暂时忽略文件。

    你不想把它们放在 .gitignore 中,因为你仍然需要这个文件,你只需要告诉 git 暂时不要关注它,所以如果它在本地为你改变,git 会忽略它。

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

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

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

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

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

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

    SeleniumSettings.java

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

    然后在您的原始课程中,您可以通过以下方式调用您的属性设置器:

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

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

    【讨论】:

    • 感谢您的详细解答!我还考虑过单独设置一个您不更改的设置文件。问题是我不知道这样一个文件的外观或如何实现它。
    • 添加了一个简单的示例,如果您需要再次执行此类操作。 :)
    • 非常感谢!如果我只有积分,我也会为你投票,哈哈!无论如何,我实际上会实施这个,因为我相信它会进一步帮助我们。
    【解决方案2】:

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

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

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

    【讨论】:

    • 虽然这可以解决问题,但其他答案可能会更好。经常发生团队成员需要自己的配置文件,所以最好使用git内置的ignore。
    猜你喜欢
    • 1970-01-01
    • 2020-08-29
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    • 2018-02-04
    相关资源
    最近更新 更多