C# Selenium IEDriver-关于路径变量

C# Selenium IEDriver-关于路径变量,c#,selenium,selenium-webdriver,C#,Selenium,Selenium Webdriver,我正在使用Selenium for IE浏览器创建回归测试套件。我正在使用Selenium网站上的IEDriver exe。根据Selenium的指示 “Internet Explorer驱动程序服务器 如果要使用WebDriver InternetExplorerDriver最新和最强大的功能,则需要此选项。请确保$PATH(或Windows上的%PATH%)上有此选项,以便IE驱动程序按预期工作。” 方法1 我试图通过批处理文件设置PATH变量,如下所示 setlocal set varC=

我正在使用Selenium for IE浏览器创建回归测试套件。我正在使用Selenium网站上的IEDriver exe。根据Selenium的指示

“Internet Explorer驱动程序服务器 如果要使用WebDriver InternetExplorerDriver最新和最强大的功能,则需要此选项。请确保$PATH(或Windows上的%PATH%)上有此选项,以便IE驱动程序按预期工作。”

方法1 我试图通过批处理文件设置PATH变量,如下所示

setlocal
set varC=%CD%\ChromeDriver
set varI=%CD%\IEDriver
set PATH=%PATH%;%varC%;%varI%
但是,我仍然面临IEDriver无法正常工作的问题

方法2 当我通过“高级系统设置”设置PATH变量时,一切似乎都正常工作。是否有人可以确认此设置是否无法通过批处理文件完成,或者是否执行了某些错误的操作

下面是我初始化驱动程序的方式

    [OneTimeSetUp]
    public void SetupTestFixture()
    {
        switch (ConfigPara.TestBrowser.ToLower())
        {
            case "ie":

                Utility.KillProcess("iexplore");
                DesiredCapabilities caps = DesiredCapabilities.InternetExplorer();
                caps.SetCapability("ignoreZoomSetting", true);
                caps.SetCapability("nativeEvents", false);
                caps.SetCapability("allow-blocked-content", true);
                caps.SetCapability("disable-popup-blocking", true);
                caps.SetCapability("allowBlockedContent", true);
                aOptIE = new OpenQA.Selenium.IE.InternetExplorerOptions();
                aOptIE.InitialBrowserUrl = ConfigurationManager.AppSettings.Get("baseURL");
                aOptIE.EnablePersistentHover = false;
                aOptIE.RequireWindowFocus = true;
                aOptIE.IntroduceInstabilityByIgnoringProtectedModeSettings = true;

                System.Environment.SetEnvironmentVariable("webdriver.ie.driver", ConfigPara.IEDriverDirectory.FullName +"\\IEDriverServer.exe");
                Utility.Instance.driver = new InternetExplorerDriver(ConfigPara.IEDriverDirectory.FullName, aOptIE);
                break;

        }

        Utility.Instance.driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(7));

        baseURL = ConfigPara.BaseURL;
        Utility.Instance.wait = new OpenQA.Selenium.Support.UI.WebDriverWait(Utility.Instance.driver, TimeSpan.FromSeconds(30));
        //utility = new Utility(driver);
    }

    [OneTimeTearDown]
    public void SetupTestTeardown()
    {
        try
        {
            Utility.Instance.driver.Quit();
            Utility.Instance.driver.Dispose();
        }
        catch (Exception)
        {
            // Ignore errors if unable to close the browser
        }

        Assert.AreEqual("", verificationErrors.ToString());
    }

嗨,实际上你必须在这里设置你下载的IE驱动程序的路径 请像下面这样做

System.setProperty("webdriver.ie.driver","pathofIEdriver\\IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver();
下面是C#webdriver的用户代码:

System.Environment.SetEnvironmentVariable("webdriver.ie.driver", "Path\IEDriverServer.exe");

您可以使用webdriver管理器类来处理它

WebDriverManager.iedriver().setup();
添加到maven pom文件中:

<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>3.8.1</version>
</dependency>

io.github.bonigarcia
webdrivermanager
3.8.1

您还可以对Gradle使用WebDriverManager依赖项。这将自动维护IE驱动程序exe文件。

N我在您提到的页面上没有注意到这个变量。这对C#NET也是有效的吗?请跟随C#NET,希望这对您有帮助。这对我没有帮助,因为我已经有了相同的设置。我的观察是,一旦IE驱动程序崩溃,它会一次又一次地崩溃。因此,我不确定它在重置IE驱动程序时是否寻找任何特定路径,这无助于改善崩溃。性能是一样的。我缺少的任何其他设置?