c#:Selenium2でのブラウザコントロールソース

Selenium2

login.cs

using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.PageObjects;
using OpenQA.Selenium.Support.UI;

namespace Sample.PageObjects {
public class Signin {
internal IWebDriver Driver { get; set; }
[FindsBy(How=How.Name, Using=”login”)]
IWebElement UserId { get; set; }
[FindsBy(How=How.Name, Using=”passwd”)]
IWebElement Password { get; set; }
[FindsBy(How = How.XPath, Using = “//input[@type=’submit’ and @value=’サインイン’]”)]
IWebElement Submit { get; set; }

private static readonly TimeSpan TIMEOUT = new TimeSpan(0, 0, 10); // 10秒
private static readonly By MENU_LOCATOR = By.Id(“c_content”);

public static Signin CreateInstance(IWebDriver driver) {
var url = “https://login.live.com/login.srf”;
driver.Url = url;
var wait = new WebDriverWait(driver, TIMEOUT);
wait.Until(ExpectedConditions.TitleIs(“Windows Live へようこそ”));
var login = new Signin() { Driver = driver };
PageFactory.InitElements(driver, login);
return login;
}

public Menu Login(string userId, string password) {
this.UserId.SendKeys(userId);
this.Password.SendKeys(password);
this.Submit.Click();

var wait = new WebDriverWait(this.Driver, TIMEOUT);
wait.Until(ExpectedConditions.ElementExists(MENU_LOCATOR));

var menu = new Menu() { Driver = this.Driver };
menu.Initialize();
return menu;
}
}
}

Program.cs

using System;
using OpenQA.Selenium.IE;
using Sample.PageObjects;

namespace Sample {
class Program {
static void Main(string[] args) {
var IWebDriver driver = new FirefoxDriver();
// driver.Navigate().GoToUrl(“http://www.google.com”);
var login = Signin.CreateInstance(driver);
var menu = login.Login(“UserID”, “Password”);

}
}
}