WebDriver はダイアログ ウィンドウと直接対話できません。これは、ダイアログ ウィンドウがオペレーティング システムのドメインであり、Web ページではないためです。ただし、名前空間 System.Windows.Forms の SendKeys クラス メソッド SendWait() を使用して、ダイアログ ウィンドウでアクションを実行することは可能です。
using System.Windows.Forms;
以下のコード例では、PLUpload ボタンが押され、アップロードするファイルを選択するための Windows ダイアログが開きます。
次の行は、表示されるダイアログ ウィンドウにキー値を送信するために書き込まれます。
SendKeys.SendWait(@"C:\Users\Public\Pictures\Sample Pictures\Dock.jpg");
SendKeys.SendWait(@"{Enter}");
C# の SendKeys クラスの詳細なリファレンスは、http://msdn.microsoft.com/en-au/library/system.windows.forms.sendkeys.aspxにあります。
using System;
using System.Windows.Forms;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium;
using OpenQA.Selenium.Support;
using OpenQA.Selenium.Interactions;
using NUnit.Framework;
namespace BusinessCreation
{
class PlUpload
{
static void Main(string[] args)
{
IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://www.plupload.com/example_queuewidget.php");
driver.FindElement(By.XPath("//object[@data='/plupload/js/plupload.flash.swf']")).Click();
SendKeys.SendWait(@"C:\Users\Public\Pictures\Sample Pictures\Dock.jpg");
SendKeys.SendWait(@"{Enter}");
}
}
}