public HomePage HomePage => new HomePage(InitializeBrowser());
private static IWebDriver InitializeBrowser()
var options = new EdgeOptions();
options.BinaryLocation = @"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe";
var driver = new EdgeDriver(@"C:\msedgedriver", options, TimeSpan.FromHours(1));
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(3);
public static void Main()
var company = new Company{FirstName = "" , LastName = ""};
.If(IsDriverFound(company), b => b.FillPostingInformationForm(company))
.If(!IsDriverFound(company), b => b
public IWebDriver WebDriver { get; set; }
public BasePage(IWebDriver webDriver)
public class HomePage: BasePage
private Select2 Driver => new Select2(WebDriver, WebDriver.FindElement(By.XPath("xpath")));
private IWebElement FirstName => WebDriver.FindElement(By.XPath("xpath"));
private IWebElement LastName => WebDriver.FindElement(By.XPath("xpath"));
public HomePage(IWebDriver webDriver) : base(webDriver)
public HomePage FillPostingInformationForm(Company company)
FirstName.SendKeys(company.FirstName);
LastName.SendKeys(company.LastName);
return new HomePage(WebDriver);
public HomePage IsDriverFound(Company company)
Driver.IsItemSelected(company.FirstName + " " + company.LastName);
return new HomePage(WebDriver);
public HomePage GoToDriversPage(){
return new HomePage(WebDriver);
public IWebDriver WebDriver { get; set; }
public BaseElement(IWebDriver webDriver)
public class Select2 : BaseElement
public IWebElement _element;
public Select2(IWebDriver webDriver, IWebElement element) : base(webDriver)
public bool IsItemSelected(string keyWord)
_element.SendKeys(keyWord);
var option = WebDriver.FindElement(By.XPath(string.Format("//*[@{0} = '{1}']",
catch (NoSuchElementException ex)
Console.WriteLine(ex.Message);
public static class BuilderExtensions
public static T If<T>(this T t,bool cond, Func<T, T> builder)
public string FirstName { get; set; }
public string LastName { get; set; }