Program.cs 4.43 KB
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Interactions;
using OpenQA.Selenium.Support.UI;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace CentralDispatcher
{
    class Program
    {

        private static readonly string titlePageUrl = "https://www.centraldispatch.com/";
        private static readonly string userName = "Empo101";
        private static readonly string password = "Miamiheat1";
        private static readonly string findVehiclesUrl = "https://www.centraldispatch.com/protected/listing-search";

        static void Main(string[] args)
        {
           
        var location = new Uri(Assembly.GetEntryAssembly().GetName().CodeBase);
        var chromedriverPath = new FileInfo(location.AbsolutePath).Directory.ToString();
      
        //  using (
        var driver = new ChromeDriver(chromedriverPath);
        var windowSize = driver.Manage().Window.Size;
            //   )
            //  {
        driver.Navigate().GoToUrl(titlePageUrl);

        /*Actions action = new Actions(driver);
        action.KeyDown(Keys.Control).SendKeys(Keys.F12).
        KeyUp(Keys.Control).
        Perform();*/

            // find login button
        var loginBtn = driver.FindElementsByClassName("loginBtn").ToArray()
        .Where(x => x.Location.X != 0 && x.Location.Y != 0).FirstOrDefault();
        loginBtn.Click();

            // set user login and password
        driver.FindElementById("username").SendKeys(userName);
        driver.FindElementById("password").SendKeys(password);       

            // find login buttons array
        var submit = driver.FindElement(By.XPath("//button[@type='submit'][text()='Login']"));
        submit.Click();

            // push for authorization button
        var exp = driver.FindElementsByClassName("loginBtn").ToArray();

            // redirect to find vehicles page
            driver.Navigate().GoToUrl(findVehiclesUrl);


            // find area originRegion
        var originRegion = driver.FindElementByName("origin[region]");
        var selectOriginRegionElementAll = new SelectElement(originRegion);
        selectOriginRegionElementAll.SelectByValue("All");


            // find region area destinationRegion
            var destinationRegion = driver.FindElementByName("destination[region]");
            // select "All" item
            var selectDestinationRegionElementAll = new SelectElement(destinationRegion);
            selectDestinationRegionElementAll.SelectByValue("All");
    ;

            // open area date and pricing options
            var dateAndPricingOptions = driver.FindElementById("page-date-pricing-chev");
            dateAndPricingOptions.Click();

            // open list "readyToShip" items
            driver.Manage().Window.Size = new System.Drawing.Size(100, 900);
            var readyToShip = driver.FindElementById("readyToShip");
            readyToShip.Click();
            driver.Manage().Window.Size = new System.Drawing.Size(windowSize.Width, windowSize.Height);
            // select "14 Days" item


            // open list "paymentType" items
            var paymentType = driver.FindElementById("paymentType");
         //   paymentType.Click();
                     
            // select "All" item
            var paymentTypeAll = new SelectElement(paymentType);

            var optionTypeAll = paymentTypeAll.Options.Where(x => x.Text == "All").First();
            optionTypeAll.Click();

            //paymentTypeAll.SelectByValue("All");



            var readyToShipWithin = new SelectElement(readyToShip);
            // readyToShipWithin.SelectByValue("60 Days");
            var optionReadyToShipWithin = readyToShipWithin.Options.Where(x => x.Text == "14 Days").First();
            optionReadyToShipWithin.Click();


            // open area date and pricing options
            var pageResultOptions = driver.FindElementById("page-results-options-chev");
            pageResultOptions.Click();



            // open area cargo options
            driver.Manage().Window.Size = new System.Drawing.Size(100, 900);
            var vehicleOptions = driver.FindElementById("page-vehicle-spec-chev");
            vehicleOptions.Click();
            driver.Manage().Window.Size = new System.Drawing.Size(windowSize.Width, windowSize.Height);


            var body_html = driver.PageSource;
         //   }         
        }     
    }
}