如何在 C# 中使用相对路径实例化新的 ChromeDriver?

问题描述 投票:0回答:5

它可以使用绝对路径,例如:

WebDriver = new ChromeDriver(@"C:\Users\<my user>\Documents\<my project>\WebDrivers\Chrome\");

但是由于我也在 TFS 构建服务器上运行测试,因此我需要它是相对路径。

c# path selenium-webdriver relative-path
5个回答
4
投票

将驱动程序添加到您的解决方案中,并在属性窗口中定义要将文件复制到输出目录。

文件属性

上图中,驱动程序位于resources目录中:

/my solution
   /resources
     /chromedriver.exe
     /IEDriverServer.exe

构建后,它们将被复制到:

/bin
   /debug
      /resources
        /chromedriver.exe
        /IEDriverServer.exe

创建驱动程序时,您可以定义驱动程序现在相对于 bin 目录的路径。

return new ChromeDriver("resources");

3
投票

我解决了这个问题:

  1. 将 chromedriver.exe 放在已知路径中(简单的方法是将文件从 Windows 资源管理器拖到 Visual Studio 中)
  2. 使用此相对路径语法:
    WebDriver = new ChromeDriver(@"../../");

关键是要找到司机住的正确路径,类似这样:

System.IO.Directory.GetCurrentDirectory();


2
投票

您可能有所有驱动程序的枚举:

  public enum Drivers
    {
        Chrome,
        Firefox,
        Safari,
        Edge,
        IE
    }


  public static IWebDriver GetDriver(Drivers driver)
        {
            var outPutDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            // below is my location where I copied all drivers like chromedriver.exe 
            var relativePath = @"..\..\bin\Debug\BrowserDriver"; 
            var chromeDriverPath = Path.GetFullPath(Path.Combine(outPutDirectory,relativePath));
            // return this driver , just debug this code and check the "outPutDirectory" path
            return new ChromeDriver(chromeDriverPath);
        }

1
投票

这在java中对我有用:

System.setProperty(“webdriver.chrome.driver”,
      new File(“./src/test/resources/drivers/chromedriver.exe”).getCanonicalPath());

0
投票

C# 代码

  1. 在Project文件夹下直接创建一个Drivers文件夹
  2. 将 chromedriver.exe 复制到此文件夹中,然后选择此文件并复制到输出目录 = 始终复制

在代码中:创建此方法以返回您的驱动程序: 私人 IWeDriver launchChromeBrowserDriver(string urlString){

字符串exePath = AppDomain.CurrentDomain.BaseDirectory;

字符串 driverFolder = Path.Combine(exePath,@"Drivers")

IWebDriver 驱动程序 = new ChromeDriver(driverFolder);

driver.Url = urlstring; (传递参数)

driver.Navigate().GoToUrl(driver.Url);

返程司机 }

这适用于调试、发布以及使用 ClickOnce 的发布。

转到项目 >> 项目名称属性 >> 发布选项卡

单击“更新...”下方的“选项”,然后选择“部署”并取消选中 - 使用“.deploy”文件扩展名。

现在相对路径应该适用于所有场景

© www.soinside.com 2019 - 2024. All rights reserved.