Advertisement
Guest User

Untitled

a guest
Oct 6th, 2016
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 26.65 KB | None | 0 0
  1. using System;
  2. using OpenQA.Selenium;
  3. using OpenQA.Selenium.Firefox;
  4. using OpenQA.Selenium.Support.UI;
  5. using OpenQA.Selenium.Interactions;
  6. using System.Diagnostics;
  7. using System.Text.RegularExpressions;
  8. using System.IO;
  9. using Newtonsoft.Json;
  10. using System.Collections.Generic;
  11. using System.Net.Mail;
  12. using System.Net;
  13.  
  14. /*
  15. https://onlineservices.immigration.govt.nz/WORKINGHOLIDAY/Application/Create.aspx?CountryId=106
  16.  
  17. donde CountryId puede ser:
  18.  
  19. Italy = 106
  20. Germany = 82
  21. Argentina = 13
  22. */
  23.  
  24. namespace ConsoleApplication2
  25. {
  26.  
  27.     class Program
  28.     {
  29.         public static String idform { get; set; }
  30.  
  31.         public static IWebDriver driver { get; set; }
  32.  
  33.         static void Main(string[] args)
  34.         {
  35.             int countR = 0;
  36.  
  37.             FirefoxProfile profile = new FirefoxProfile();
  38.             profile.SetPreference("webdriver.load.strategy", "unstable");
  39.             driver = new FirefoxDriver(profile);
  40.             driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromMilliseconds(100));
  41.             WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(999999));
  42.             String url = "";
  43.             int etapa = 0;
  44.  
  45.             // deserialize JSON directly from a file
  46.             String data = File.ReadAllText("data.json");
  47.             Dictionary<string, string> info = JsonConvert.DeserializeObject<Dictionary<string, string>>(data);
  48.            
  49.             while (true)
  50.             {
  51.                 try
  52.                 {
  53.                     //Errores
  54.                     if (driver.FindElements(By.Id("ctl00_ContentPlaceHolder1_statusLabel")).Count > 0)
  55.                     {
  56.                         if (driver.FindElements(By.Id("ctl00_ContentPlaceHolder1_statusLabel"))[0].Text.Contains("Unfortunately the available places for this Working Holiday Scheme have been filled ")
  57.                             || driver.FindElements(By.Id("ctl00_ContentPlaceHolder1_statusLabel"))[0].Text.Contains("There is no scheme open for this country."))
  58.                         {
  59.                             Console.Write("N/F(" + countR.ToString() + ")");
  60.                             countR++;
  61.                             System.Threading.Thread.Sleep(int.Parse(info["timeWait"]));
  62.                             driver.ir("about:blank");
  63.                             System.Threading.Thread.Sleep(1000);
  64.                             driver.ir("https://onlineservices.immigration.govt.nz/WORKINGHOLIDAY/Application/Create.aspx?CountryId=" + info["countryApply"]);
  65.                         }
  66.                     }
  67.                     if (driver.FindElements(By.Id("ctl00_ContentPlaceHolder1_errorMessageLabel")).Count > 0)
  68.                     {
  69.                         if (driver.FindElements(By.Id("ctl00_ContentPlaceHolder1_errorMessageLabel"))[0].Text.Contains("Multiple applications are not supported."))
  70.                         {
  71.                             driver.ir("https://onlineservices.immigration.govt.nz/WorkingHoliday/");
  72.                             Console.Write("Acceda al formulario y elija la etapa en la que se quedo: ");
  73.                             etapa = Convert.ToInt32(Console.ReadLine());
  74.                         }
  75.                     }
  76.                     if (driver.FindElements(By.Id("errorTryAgain")).Count > 0){
  77.                         url = driver.Url;
  78.                         driver.ir("about:blank");
  79.                         System.Threading.Thread.Sleep(int.Parse(info["timeWait"]));
  80.                         driver.ir(url);
  81.                     }
  82.  
  83.                     if (driver.FindElements(By.Id("Heading")).Count > 0)
  84.                         if (driver.FindElements(By.Id("Heading"))[0].Text.Contains("Access denied"))
  85.                             etapa = 0;
  86.                     if (driver.Url.Contains("error.html"))
  87.                     {
  88.                         driver.Navigate().Back();
  89.                         etapa -= 1;
  90.                     }
  91.  
  92.                     if (driver.PageSource.Contains("Invalid Request"))
  93.                     {                      
  94.                         Console.Write("Invalid Request.. restarting. \n");
  95.                         driver.Quit();
  96.                         driver = new FirefoxDriver(profile);
  97.                         driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromMilliseconds(100));
  98.                         wait = new WebDriverWait(driver, TimeSpan.FromSeconds(100));
  99.                         etapa = 0;
  100.                     }
  101.  
  102.                     if (etapa > 2)
  103.                         wait.Until(driver => driver.Scripts().ExecuteScript("return document.readyState;").Equals("complete"));
  104.  
  105.  
  106.                    
  107.                     switch (etapa)
  108.                     {
  109.                         case 0:
  110.  
  111.                             etapa++;
  112.                             driver.ir("https://onlineservices.immigration.govt.nz/secure/Login+Working+Holiday.htm");
  113.                             break;
  114.                         case 1:
  115.                             wait.Until(ExpectedConditions.ElementToBeClickable(By.Id("OnlineServicesLoginStealth_VisaLoginControl_loginImageButton")));
  116.  
  117.                             etapa++;
  118.                             driver.Scripts().ExecuteScript(string.Format(@"
  119.                                $('#OnlineServicesLoginStealth_VisaLoginControl_userNameTextBox').val('{0}');
  120.                                $('#OnlineServicesLoginStealth_VisaLoginControl_passwordTextBox').val('{1}');
  121.                                $('#OnlineServicesLoginStealth_VisaLoginControl_loginImageButton').click();
  122.                            ",info["user"],info["password"]));
  123.                             break;  
  124.                         case 2:
  125.                             wait.Until(ExpectedConditions.TitleContains("Find a Visa homepage"));
  126.  
  127.                             etapa++;
  128.                             driver.ir("https://onlineservices.immigration.govt.nz/WORKINGHOLIDAY/Application/Create.aspx?CountryId=" + info["countryApply"]);
  129.                             break;
  130.                         case 3:
  131.                             if (driver.FindElements(By.Id("ctl00_ContentPlaceHolder1_applyNowButton")).Count > 0)
  132.                             {
  133.                                 Console.Write("Found \n");
  134.                                 etapa++;
  135.                                 driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_applyNowButton")).Click();
  136.                             }
  137.                             break;
  138.                         case 4:
  139.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_personDetails_familyNameTextBox"));
  140.  
  141.                             url = driver.Url;
  142.                             Console.WriteLine("Personal information 1.");
  143.                             driver.Scripts().ExecuteScript(string.Format(@"
  144.                                document.getElementById('ctl00_ContentPlaceHolder1_personDetails_familyNameTextBox').value='{0}'
  145.                                document.getElementById('ctl00_ContentPlaceHolder1_personDetails_givenName1Textbox').value='{1}'
  146.                                document.getElementById('ctl00_ContentPlaceHolder1_personDetails_genderDropDownList').value='{2}'
  147.                                document.getElementById('ctl00_ContentPlaceHolder1_personDetails_dateOfBithDatePicker_Day').value='{3}'
  148.                                document.getElementById('ctl00_ContentPlaceHolder1_personDetails_dateOfBithDatePicker_Month').value='{4}'
  149.                                document.getElementById('ctl00_ContentPlaceHolder1_personDetails_dateOfBithDatePicker_Year').value='{5}'
  150.                                document.getElementById('ctl00_ContentPlaceHolder1_personDetails_CountryDropDownList').value='13'
  151.                                document.getElementById('ctl00_ContentPlaceHolder1_addressContactDetails_address_streetNumberTextbox').value='{6}'
  152.                                document.getElementById('ctl00_ContentPlaceHolder1_addressContactDetails_address_address1TextBox').value='{7}'
  153.                                document.getElementById('ctl00_ContentPlaceHolder1_addressContactDetails_address_suburbTextBox').value='{8}'
  154.                                document.getElementById('ctl00_ContentPlaceHolder1_addressContactDetails_address_cityTextBox').value='{9}'
  155.                                document.getElementById('ctl00_ContentPlaceHolder1_addressContactDetails_address_provinceStateTextBox').value='{10}'
  156.                                document.getElementById('ctl00_ContentPlaceHolder1_addressContactDetails_address_postalCodeTextBox').value='{11}'
  157.                                document.getElementById('ctl00_ContentPlaceHolder1_addressContactDetails_address_countryDropDownList').value='{12}'
  158.                                document.getElementById('ctl00_ContentPlaceHolder1_addressContactDetails_contactDetails_emailAddressTextBox').value='{13}'
  159.                                document.getElementById('ctl00_ContentPlaceHolder1_hasAgent_representedByAgentDropdownlist').value='No'
  160.                                document.getElementById('ctl00_ContentPlaceHolder1_communicationMethod_communicationMethodDropDownList').value='1'
  161.                                document.getElementById('ctl00_ContentPlaceHolder1_hasCreditCard_hasCreditCardDropDownlist').value='Yes'
  162.                            ", info["familyName"]
  163.                             , info["givenName"]
  164.                             , info["gender"]
  165.                             , info["dayBirth"]
  166.                             , info["monthBirth"]
  167.                             , info["yearBirth"]
  168.                             , info["streetNumber"]
  169.                             , info["streetName"]
  170.                             , info["suburb"]
  171.                             , info["city"]
  172.                             , info["provinceState"]
  173.                             , info["zipCode"]
  174.                             , info["country"]
  175.                             , info["email"]));
  176.  
  177.                             etapa++;
  178.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_wizardPageFooter_wizardPageNavigator_nextImageButton")).Click();
  179.                             break;
  180.                         case 5:
  181.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_identification_passportNumberTextBox"));
  182.  
  183.                             Console.WriteLine("Personal information 2.");
  184.                             driver.Scripts().ExecuteScript(string.Format(@"
  185.                                document.getElementById('ctl00_ContentPlaceHolder1_identification_passportNumberTextBox').value = '{0}'
  186.                                document.getElementById('ctl00_ContentPlaceHolder1_identification_confirmPassportNumberTextBox').value = '{0}'
  187.                                document.getElementById('ctl00_ContentPlaceHolder1_identification_passportExpiryDateDatePicker_Day').value = '{1}'
  188.                                document.getElementById('ctl00_ContentPlaceHolder1_identification_passportExpiryDateDatePicker_Month').value = '{2}'
  189.                                document.getElementById('ctl00_ContentPlaceHolder1_identification_passportExpiryDateDatePicker_Year').value = '{3}'
  190.                                document.getElementById('ctl00_ContentPlaceHolder1_identification_otherIdentificationDropdownlist').value = '{4}'
  191.                                document.getElementById('ctl00_ContentPlaceHolder1_identification_otherIssueDateDatePicker_Day').value = '{5}'
  192.                                document.getElementById('ctl00_ContentPlaceHolder1_identification_otherIssueDateDatePicker_Month').value = '{6}'
  193.                                document.getElementById('ctl00_ContentPlaceHolder1_identification_otherIssueDateDatePicker_Year').value = '{7}'
  194.                            "
  195.                             , info["passport"]
  196.                             , info["passportEDay"]
  197.                             , info["passportEMonth"]
  198.                             , info["passportEYear"]
  199.                             , info["idType"]
  200.                             , info["idEmitDay"]
  201.                             , info["idEmitMonth"]
  202.                             , info["idEmitYear"]));
  203.  
  204.                             etapa++;
  205.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_wizardPageHeader_nav_sectionTabs_TabHeaders_ctl01_tabButton")).Click();
  206.                             break;
  207.                         case 6:
  208.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_medicalConditions_renalDialysisDropDownList"));
  209.  
  210.                             Console.WriteLine("Health.");
  211.                             driver.Scripts().ExecuteScript(@"
  212.                                document.getElementById('ctl00_ContentPlaceHolder1_medicalConditions_renalDialysisDropDownList').value = 'No'
  213.                                document.getElementById('ctl00_ContentPlaceHolder1_medicalConditions_tuberculosisDropDownList').value = 'No'
  214.                                document.getElementById('ctl00_ContentPlaceHolder1_medicalConditions_cancerDropDownList').value = 'No'
  215.                                document.getElementById('ctl00_ContentPlaceHolder1_medicalConditions_heartDiseaseDropDownList').value = 'No'
  216.                                document.getElementById('ctl00_ContentPlaceHolder1_medicalConditions_disabilityDropDownList').value = 'No'
  217.                                document.getElementById('ctl00_ContentPlaceHolder1_medicalConditions_hospitalisationDropDownList').value = 'No'
  218.                                document.getElementById('ctl00_ContentPlaceHolder1_medicalConditions_residentailCareDropDownList').value = 'No'
  219.                                document.getElementById('ctl00_ContentPlaceHolder1_medicalConditions_tbRiskDropDownList').value = 'Yes'
  220.                            ");
  221.                             if (info["gender"] == "F")
  222.                             {
  223.                                 driver.Scripts().ExecuteScript(@"
  224.                                document.getElementById('ctl00_ContentPlaceHolder1_medicalConditions_pregnancy_pregnancyStatusDropDownList').value = 'No'");
  225.                             }
  226.  
  227.                             etapa++;
  228.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_wizardPageFooter_wizardPageNavigator_nextImageButton")).Click();
  229.                             break;
  230.                         case 7:
  231.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_character_imprisonment5YearsDropDownList"));
  232.  
  233.                             Console.WriteLine("Character.");
  234.                             driver.Scripts().ExecuteScript(@"
  235.                                document.getElementById('ctl00_ContentPlaceHolder1_character_imprisonment5YearsDropDownList').value = 'No'
  236.                                document.getElementById('ctl00_ContentPlaceHolder1_character_imprisonment12MonthsDropDownList').value = 'No'
  237.                                document.getElementById('ctl00_ContentPlaceHolder1_character_removalOrderDropDownList').value = 'No'
  238.                                document.getElementById('ctl00_ContentPlaceHolder1_character_deportedDropDownList').value = 'No'
  239.                                document.getElementById('ctl00_ContentPlaceHolder1_character_chargedDropDownList').value = 'No'
  240.                                document.getElementById('ctl00_ContentPlaceHolder1_character_convictedDropDownList').value = 'No'
  241.                                document.getElementById('ctl00_ContentPlaceHolder1_character_underInvestigationDropDownList').value = 'No'
  242.                                document.getElementById('ctl00_ContentPlaceHolder1_character_excludedDropDownList').value = 'No'
  243.                                document.getElementById('ctl00_ContentPlaceHolder1_character_removedDropDownList').value = 'No'
  244.                            ");
  245.  
  246.                             etapa++;
  247.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_wizardPageFooter_wizardPageNavigator_nextImageButton")).Click();
  248.                             break;
  249.                         case 8:
  250.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_offshoreDetails_commonWHSQuestions_previousWhsPermitVisaDropDownList"));
  251.  
  252.                             Console.WriteLine("Working Holiday Specific.");
  253.                             driver.Scripts().ExecuteScript(string.Format(@"
  254.                                document.getElementById('ctl00_ContentPlaceHolder1_offshoreDetails_commonWHSQuestions_previousWhsPermitVisaDropDownList').value = 'No'
  255.                                document.getElementById('ctl00_ContentPlaceHolder1_offshoreDetails_commonWHSQuestions_sufficientFundsHolidayDropDownList').value = 'Yes'
  256.                                document.getElementById('ctl00_ContentPlaceHolder1_offshoreDetails_intendedTravelDateDatePicker_Day').value = '{0}'
  257.                                document.getElementById('ctl00_ContentPlaceHolder1_offshoreDetails_intendedTravelDateDatePicker_Month').value = '{1}'
  258.                                document.getElementById('ctl00_ContentPlaceHolder1_offshoreDetails_intendedTravelDateDatePicker_Year').value = '{2}'
  259.                                document.getElementById('ctl00_ContentPlaceHolder1_offshoreDetails_beenToNzDropDownList').value = 'No'
  260.                                document.getElementById('ctl00_ContentPlaceHolder1_offshoreDetails_requirementsQuestions_sufficientFundsOnwardTicketDropDownList').value = 'Yes'
  261.                                document.getElementById('ctl00_ContentPlaceHolder1_offshoreDetails_requirementsQuestions_readRequirementsDropDownList').value = 'Yes'
  262.                            "
  263.                             , info["travelDay"]
  264.                             , info["travelMonth"]
  265.                             , info["travelYear"]
  266.                             ));
  267.  
  268.                             etapa++;
  269.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_wizardPageFooter_wizardPageNavigator_validateButton")).Click();
  270.                             break;
  271.                        case 9:
  272.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_wizardPageFooter_wizardPageNavigator_submitImageButton"));
  273.  
  274.                             Console.WriteLine("Submit!");
  275.                             etapa++;
  276.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_wizardPageFooter_wizardPageNavigator_submitImageButton")).Click();
  277.                             break;
  278.                         case 10:
  279.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_falseStatementCheckBox"));
  280.  
  281.                             Console.WriteLine("Confirmando que todo esta bien...");
  282.                             driver.Scripts().ExecuteScript(@"
  283.                              document.getElementById('ctl00_ContentPlaceHolder1_falseStatementCheckBox').checked = true
  284.                              document.getElementById('ctl00_ContentPlaceHolder1_notesCheckBox').checked = true
  285.                              document.getElementById('ctl00_ContentPlaceHolder1_circumstancesCheckBox').checked = true
  286.                              document.getElementById('ctl00_ContentPlaceHolder1_warrantsCheckBox').checked = true
  287.                              document.getElementById('ctl00_ContentPlaceHolder1_informationCheckBox').checked = true
  288.                              document.getElementById('ctl00_ContentPlaceHolder1_healthCheckBox').checked = true
  289.                              document.getElementById('ctl00_ContentPlaceHolder1_adviceCheckBox').checked = true
  290.                              document.getElementById('ctl00_ContentPlaceHolder1_registrationCheckBox').checked = true
  291.                              document.getElementById('ctl00_ContentPlaceHolder1_entitlementCheckbox').checked = true
  292.                              document.getElementById('ctl00_ContentPlaceHolder1_permitExpiryCheckBox').checked = true
  293.                              document.getElementById('ctl00_ContentPlaceHolder1_medicalInsuranceCheckBox').checked = true
  294.                              ");
  295.  
  296.                             etapa++;
  297.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_submitImageButton")).Click();
  298.                             break;
  299.                         case 11:
  300.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_payAnchor"));
  301.                             Console.WriteLine("Aceptando que hay que pagar...");
  302.  
  303.                             etapa++;
  304.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_payAnchor")).Click();
  305.                             break;
  306.                         case 12:
  307.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_onlinePaymentAnchor"));
  308.                             Console.WriteLine("Yendo a sitio seguro de pago");
  309.  
  310.                             etapa++;
  311.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_onlinePaymentAnchor")).Click();
  312.                             break;
  313.                         case 13:
  314.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_okImageButton"));
  315.                             Console.WriteLine("Llenar: Payer Name");
  316.                             driver.Scripts().ExecuteScript(string.Format(@"
  317.                              document.getElementById('ctl00_ContentPlaceHolder1_payorNameTextBox').value = '{0}'
  318.                              ",info["payerName"]));
  319.  
  320.                             etapa++;
  321.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_okImageButton")).Click();
  322.                             break;
  323.                         case 14:
  324.                             driver.FindElement(By.Id("card_type_VISA"));
  325.                             Console.WriteLine("Select VISA");
  326.  
  327.                             etapa++;
  328.                             driver.FindElement(By.Id("card_type_VISA")).Click();
  329.                             break;
  330.                         case 15:
  331.                             driver.FindElement(By.Id("pay_button"));
  332.                             Console.WriteLine("Llenar: Datos de la tarjeta");
  333.                             driver.Scripts().ExecuteScript(string.Format(@"
  334.                              document.getElementById('cardnumber').value = '{0}'
  335.                              document.getElementById('cardverificationcode').value = '{1}'
  336.                              document.getElementById('expirymonth').value = '{2}'
  337.                              document.getElementById('expiryyear').value = '{3}'
  338.                              document.getElementById('cardholder').value = '{4}'
  339.                              "
  340.                               , info["cardNumber"]
  341.                               , info["cardCode"]
  342.                               , info["eMonth"]
  343.                               , info["eYear"]
  344.                               , info["cardName"]
  345.                               ));
  346.  
  347.                             etapa++;
  348.                             if (info["countryApply"].Equals("13"))
  349.                             {
  350.                                 var fromAddress = new MailAddress("mail@mail.com", "Visa NZ");
  351.                                 var toAddress = new MailAddress("mail@mail.com", "Yo");
  352.                                 const string fromPassword = "";
  353.                                 const string subject = "VISA PAGA";
  354.                                 const string body = "VISA PAGA";
  355.  
  356.                                 var smtp = new SmtpClient
  357.                                 {
  358.                                     Host = "smtp.gmail.com",
  359.                                     Port = 587,
  360.                                     EnableSsl = true,
  361.                                     DeliveryMethod = SmtpDeliveryMethod.Network,
  362.                                     UseDefaultCredentials = false,
  363.                                     Credentials = new NetworkCredential(fromAddress.Address, fromPassword),
  364.                                 };
  365.  
  366.                                 using (var message = new MailMessage(fromAddress, toAddress)
  367.                                 {
  368.                                     Subject = subject,
  369.                                     Body = body
  370.                                 })
  371.                                 {
  372.                                     smtp.Send(message);
  373.                                 }
  374.                                 driver.FindElement(By.Id("pay_button")).Click();
  375.                             }
  376.                             /*sw.Stop();
  377.                             Console.WriteLine("Elapsed= {0} ", sw.Elapsed);
  378.                             idform = Regex.Match(url, "(?<=ApplicationId=)(.*?)(?=&)").Value;
  379.                             driver.ir("https://onlineservices.immigration.govt.nz/WorkingHoliday/Application/Delete.aspx?ApplicationId="+idform);
  380.                             wait.Until(ExpectedConditions.ElementToBeClickable(By.Id("ctl00_ContentPlaceHolder1_okDeleteButton")));
  381.                             driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_okDeleteButton")).Click();
  382.                             wait.Until(ExpectedConditions.ElementIsVisible(By.Id("ctl00_ContentPlaceHolder1_postDeletePanel")));
  383.                             etapa = 3;
  384.                             driver.ir("https://onlineservices.immigration.govt.nz/WORKINGHOLIDAY/Application/Create.aspx?CountryId=106");
  385.                             sw.Reset();
  386.                             sw.Start();*/
  387.                             break;
  388.                         case 16:
  389.                             return;
  390.                         default:
  391.                             break;
  392.                     }
  393.                 }
  394.                 catch (Exception e)
  395.                 {
  396.                     System.Threading.Thread.Sleep(500);
  397.                 }
  398.             }
  399.            
  400.  
  401.         }
  402.  
  403.     }
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.     public static class WebDriverExtensions
  411.     {
  412.         public static IWebElement FindElement(this IWebDriver driver, By by, int timeoutInSeconds)
  413.         {
  414.             if (timeoutInSeconds > 0)
  415.             {
  416.                 var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeoutInSeconds));
  417.                 return wait.Until(ExpectedConditions.ElementExists(by));
  418.             }
  419.             return driver.FindElement(by);
  420.         }
  421.         public static IJavaScriptExecutor Scripts(this IWebDriver driver)
  422.         {
  423.             return (IJavaScriptExecutor)driver;
  424.         }
  425.         public static string ir(this IWebDriver driver, string url)
  426.         {
  427.             try { driver.Url = url; return driver.Url; } catch (Exception e) { return ""; }
  428.         }
  429.     }
  430. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement