Guys, I have started to work on selenium web driver. You can assume I am a beginner. At the moment I am having difficulties in implementing the implicit wait command in my code (C#). it is not working as it should and result in an exception due to Element not found, however when I add the "Thread.Sleep(3000) the code get executed flawlessly. I have been looking for the solution all over the internet but not able to resolve the problem. Below I have mentioned sample code.
class Entrypoint
{
static void Main()
{
IWebDriver driver = new ChromeDriver();
**driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);**
driver.Navigate().GoToUrl("https://r1.netrevelation.com:8443/mcba-cms/pages/flight-transfer.cab");
driver.Manage().Window.Maximize();
driver.FindElement(By.Id("loginlink")).Click();
driver.FindElement(By.Id("headerSubView:inputUserName:input")).SendKeys("st001");
driver.FindElement(By.Id("headerSubView:inputPassword:input")).SendKeys("hello321" + Keys.Enter);
driver.FindElement(By.Id("dateOfFlight:input")).Click();**//This Step does not get Executed , it throws exception element not found.**
driver.FindElement(By.Id("ui-datepicker-div")).Click();
driver.FindElement(By.XPath(".//*[@id='ui-datepicker-div']/div/a[2]/span")).Click();
driver.FindElement(By.LinkText("28")).Click();
IWebElement Flightno = driver.FindElement(By.Id("selectedFlight:input"));
Flightno.SendKeys("BA901" + Keys.Enter);
IWebElement Flighttick = driver.FindElement(By.Id("flightTickImg"));
driver.Quit();
Please note that at the moment I don't want to use explicit wait, as implicit will serve my need (if it starts working). The above code Run in supersonic speed for somehow it manages to Login into the system but afterward it Fails every time reason being once Login request is made system pauses for 2-3 seconds. Please provide your comment in this regard.