私は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();
こちらもご覧ください 。
ジム・エヴァンス(IEDriverServerで働く)
.NETバインディングは、実行可能ファイルの%PATH%環境変数をスキャンしません。つまり、.NETバインディングonlyの場合、IEDriverServer.exeは.NETバインディングアセンブリと同じディレクトリにあるか、またはコンストラクター内のディレクトリをInternetExplorerDriverクラスに指定する必要があります。
これらのいずれかを実行しない(またはInternetExplorerOptionsクラスのUseInternalServerプロパティを設定しない)と、.NET IEドライバー実装が例外をスローします。これは、意図したとおりです。スタンドアロンIEDriverServer.exeの使用を開始するユーザー、およびサーバーの「内部」または「レガシー」バージョンを使用する機能は、将来のリリースで削除される予定です。
https://groups.google.com/forum/?fromgroups#!topic/webdriver/EvTyEPYchxE
IEDriverServer.exe(およびChromeDriver.exe)は、次からダウンロードできます。
http://Selenium-release.storage.googleapis.com/index.html 。
これらをSeleniumテストで動作させるには、テストプロジェクトに.exeを含め、そのプロパティを「常にコピー」に設定します。
注:.exeファイルを表示するには、[ファイルの追加]ダイアログを調整する必要があります。
これを行うと、エラーが解決します。
IEDriverServer.exeを使用してInternetExplorerDriver
を呼び出す方法の簡単な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
}
}
}
IEで実行するためにJavaを使用する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ビット)のバージョンは個人によって異なる場合があります]
Internetexplorer.exeがあるフォルダーまでのパスのみを指定します。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.IE;
using System.IO;
namespace Automation
{
class To_Run_IE
{
static void Main(string[] args)
{
//Keep Internetexplorer.exe in "D:\Automation\32\Internetexplorer.exe"
IWebDriver driver = new InternetExplorerDriver(@"D:\Automation\32\"); \\Give path till the exe folder
//IWebDriver driver = new Firefoxdriver()
driver.Navigate().GoToUrl("http://www.google.com/");
driver.Manage().Window.Maximize();
IWebElement query = driver.FindElement(By.Name("q"));
query.SendKeys("Cheese");
query.Submit();
System.Console.WriteLine("Page title is: " + driver.Title);
driver.Quit();
}
} }
Visual StudioとC#を使用している場合、IEDriverServer、ChromeDriverなどを自動的にインストールするようにNareshScaler nugetパッケージを更新しました。つまり、起動と実行をより迅速に行うことができます。
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;
}