【问题标题】:Selenium IEDriver- Regarding PATH variableSelenium IEDriver - 关于 PATH 变量
【发布时间】:2016-04-14 04:43:19
【问题描述】:

我正在使用 Selenium 为 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());
    }

【问题讨论】:

    标签: c# selenium selenium-webdriver


    【解决方案1】:

    您好,实际上您必须在此处设置您下载的 IE 驱动程序的路径http://docs.seleniumhq.org/download/ 请像下面那样做

    System.setProperty("webdriver.ie.driver","pathofIEdriver\\IEDriverServer.exe");
    WebDriver driver = new InternetExplorerDriver();
    

    【讨论】:

    • N ish Ku Mar 我没有注意到你提到的页面上的这个变量。这对 C# .NET 也有效吗?
    • 请关注 joecolantonio.com/2012/07/31/… 获取 C#.NET 希望这对您有所帮助
    • 这对我没有帮助,因为我已经有了相同的设置。我的观察是,一旦 IE 驱动程序崩溃,它就会一次又一次地崩溃。因此我不确定它是否在重置 IE 驱动程序时寻找任何特定的路径
    【解决方案2】:

    用户下面的 C# webdriver 代码:

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

    【讨论】:

    • 没有帮助改善崩溃。性能是一样的。我还缺少任何其他设置吗?
    【解决方案3】:

    您可以使用 webdriver manager 类来处理它。

    WebDriverManager.iedriver().setup();
    

    添加到你的 maven pom 文件中:

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

    您还可以为 Gradle 使用 Webdrivermanage 依赖项。这会自动维护IE驱动的exe文件。

    【讨论】:

      猜你喜欢
      • 2015-08-16
      • 1970-01-01
      • 2016-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      相关资源
      最近更新 更多