27

C# で WebDriver を使用して自動化フレームワークに取り組んでいます。Firefox では正常に動作しますが、IE では動作しません。

次のエラーが表示されます。

IEDriverServer.exe が存在しません - ファイル c:\users\administrator\documents\visual studio 2010\projects\TestProject1\TestProject1\bin\Debug\IEDriverServer.exe が存在しません。ドライバーはhttp://code.google.com/p/selenium/downloads/listからダウンロードできます。

IE 9 と Windows 7 を使用しています。

IWebDriver driver = new InternetExplorerDriver();
driver.Navigate().GoToUrl("http://www.google.co.uk");
IWebElement queryBox = driver.FindElement(By.Name("q"));
queryBox.SendKeys("The Automated Tester");
queryBox.SendKeys(Keys.ArrowDown);
queryBox.Submit();

も参照してくださいこのスクリーンショット

4

7 に答える 7

22

IEDriverServer.exe (および ChromeDriver.exe) は、次の場所からダウンロードできます。

http://selenium-release.storage.googleapis.com/index.html

これらを Selenium テストで動作させるには、テスト プロジェクトに .exe を含め、そのプロパティを「常にコピー」に設定します。

注: .exe ファイルを表示するには、[ファイルの追加] ダイアログを調整する必要があります。

これを行うと、エラーが解決されます。

于 2012-07-06T18:53:06.573 に答える
16

InternetExplorerDriverIEDriverServer.exe を使用してを呼び出す方法の簡単な C# の例を次に示します。

必要に応じてリファクタリングします。

注:これを使用するとdriver.Quit()、テストの終了後に IEDriverServer.exe プロセスが確実に閉じられます。

using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium.IE;

namespace SeleniumTest
{
    [TestClass]
    public class IEDriverTest
    {
        private const string URL = "http://url";
        private const string IE_DRIVER_PATH = @"C:\PathTo\IEDriverServer.exe";

        [TestMethod]
        public void Test()
        {
            var options = new InternetExplorerOptions()
            {
                InitialBrowserUrl = URL,
                IntroduceInstabilityByIgnoringProtectedModeSettings = true
            };
            var driver = new InternetExplorerDriver(IE_DRIVER_PATH, options);
            driver.Navigate();
            driver.Close(); // closes browser
            driver.Quit(); // closes IEDriverServer process
        }
    }
}
于 2012-06-22T10:52:51.297 に答える
13

Jim Evans (IEDriverServer の作業者) による

.NET バインディングは、実行可能ファイルの %PATH% 環境変数をスキャンしません。つまり、.NET バインディングのみの場合、IEDriverServer.exe は .NET バインディング アセンブリと同じディレクトリにあると予想されるか、InternetExplorerDriver クラスのコンストラクターで、IEDriverServer.exe が見つかるディレクトリを指定する必要があります。

これらのいずれかを実行しない (または InternetExplorerOptions クラスで UseInternalServer プロパティを設定しない) と、.NET IE ドライバーの実装で例外がスローされます。スタンドアロンの IEDriverServer.exe の使用を開始してもらいたいため、これは厳密に設計によるものであり、サーバーの「内部」または「レガシー」バージョンを使用する機能は将来のリリースで削除される予定です。

https://groups.google.com/forum/?fromgroups#!topic/webdriver/EvTyEPYchxE

于 2012-06-13T13:56:49.233 に答える
1

Java を使用して IE で実行する WebDriver のコード。この概念は、C# を使用している場合に役立つと思います。

DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);      
File file = new File("C:\\Program Files\\Internet Explorer\\iexplore.exe");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
driver = new InternetExplorerDriver(capabilities);

上記のコードが機能しない場合は、"File file = new File("C:\Program Files\Internet Explorer\iexplore.exe");" の代わりに次のコードを使用してください。

File file = new File("F:\\Ripon\\IEDriverServer_Win32_2.25.2\\IEDriverServer.exe");

[注: IEDriverServer および Windows (32 ビットまたは 64 ビット) のバージョンは、個人によって異なる場合があります]

于 2013-02-27T09:50:11.567 に答える
1

Visual Studio と C# を使用している場合、NareshScaler nuget パッケージを更新して IEDriverServer、ChromeDriver などを自動的にインストールしました。つまり、より迅速に起動して実行できます。

http://nuget.org/packages/NareshScaler

于 2012-06-21T08:54:50.073 に答える
0
      public IWebDriver IEWebDriver()
    {
        var options = new InternetExplorerOptions();
        options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
        webDriver = new   InternetExplorerDriver(ConfigurationSettings.AppSettings["IDEServerPath"].ToString(), options);//Path of ur IE WebDriver,Here I stored it in a AppConfig File
        return webDriver;
   }
于 2012-08-13T08:19:21.023 に答える