public void Test_01_NO_CssSelectors() { using (Browser browser = new IE("http://www.google.com")) { var searchText = browser.TextField(new AndConstraint( Find.ByName("q"), Find.ByExistenceOfRelatedElement<Element> (e => e.Ancestor<Form>(Find.By("action", "/search"))) )); Assert.IsNotNull(searchText); Assert.IsTrue(searchText.Exists); var button = browser.Button(Find.ByClass("lsb")); searchText.TypeText("watin"); button.Click(); browser.WaitUntilContainsText("pronounced as What-in", 5); } }
public static void Descargar(string rfc, string contrasena, string carpeta, DateTime fechaDesde, DateTime fechaHasta, TipoBusqueda busqueda) { using (IE browser = new IE()) { //limpiar sesion y login browser.ClearCookies(); Thread.Sleep(1000); //java login browser.GoTo("https://portalcfdi.facturaelectronica.sat.gob.mx"); browser.WaitForComplete(); //entrar por contraseña browser.GoTo("https://cfdiau.sat.gob.mx/nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&sid=0"); browser.TextField(Find.ByName("Ecom_User_ID")).AppendText(rfc); browser.TextField(Find.ByName("Ecom_Password")).AppendText(contrasena); browser.Button("submit").Click(); browser.WaitForComplete(); //ver si nos pudimos loggear if (browser.ContainsText("Login failed, please try again") || browser.ContainsText("La entrada no se ha completado")) { browser.Close(); throw new Exception("Los datos de acceso son incorrectos para: " + rfc); } //seleccionar emitidas o recibidas if (busqueda == TipoBusqueda.Emitidas) { browser.RadioButton("ctl00_MainContent_RdoTipoBusquedaEmisor").Click(); } else { browser.RadioButton("ctl00_MainContent_RdoTipoBusquedaReceptor").Click(); } browser.Button("ctl00_MainContent_BtnBusqueda").Click(); Log.Write("Tipo busqueda", Log.Information); //Creating the directory if it doesn't exists if (!System.IO.Directory.Exists(carpeta)) { System.IO.Directory.CreateDirectory(carpeta); } //facturas emitidas if (busqueda == TipoBusqueda.Emitidas) { browser.WaitUntilContainsText("Fecha Inicial de Emisión"); browser.RadioButton("ctl00_MainContent_RdoFechas").Click(); Thread.Sleep(1000); //fecha desde browser.TextField("ctl00_MainContent_CldFechaInicial2_Calendario_text").Value = fechaDesde.ToString("dd/MM/yyyy"); //hasta browser.TextField("ctl00_MainContent_CldFechaFinal2_Calendario_text").Value = fechaHasta.ToString("dd/MM/yyyy"); Thread.Sleep(1000); //buscar muchas veces por si marca error de lentitud la pagina del sat >( while (true) { browser.Button("ctl00_MainContent_BtnBusqueda").Click(); Thread.Sleep(3000); if (browser.ContainsText("lentitud")) { browser.Link("closeBtn").Click(); } else { break; } } DescargarFacturasListadas(browser, carpeta); } else { DateTime mesActual = fechaDesde; bool primeraVez = true; while (mesActual < fechaHasta) { browser.WaitUntilContainsText("Fecha de Emisión"); browser.RadioButton("ctl00_MainContent_RdoFechas").Click(); Thread.Sleep(1000); //seleccionar año adecuado browser.SelectList("DdlAnio").SelectByValue(mesActual.Year.ToString()); //seleccionar mes adecuado browser.SelectList("ctl00_MainContent_CldFecha_DdlMes").SelectByValue(mesActual.Month.ToString()); if (mesActual.Day < 10 && primeraVez) { //seleccionar dia adecuado //click en buscar por que si no no jala //buscar muchas veces por si marca error de lentitud la pagina del sat >( while (true) { browser.Button("ctl00_MainContent_BtnBusqueda").Click(); Thread.Sleep(3000); if (browser.ContainsText("lentitud")) { browser.Link("closeBtn").Click(); } else { break; } } Thread.Sleep(1000); primeraVez = false; } browser.SelectList("ctl00_MainContent_CldFecha_DdlDia").SelectByValue(mesActual.Day.ToString("00")); Thread.Sleep(1000); //buscar muchas veces por si marca error de lentitud la pagina del sat >( while (true) { browser.Button("ctl00_MainContent_BtnBusqueda").Click(); Thread.Sleep(3000); if (browser.ContainsText("lentitud")) { browser.Link("closeBtn").Click(); } else { break; } } DescargarFacturasListadas(browser, carpeta); //pasar al siguiente mes mesActual = mesActual.AddDays(1); } } browser.Link("ctl00_LnkBtnCierraSesion").Click(); Thread.Sleep(2000); browser.Close(); } }
private static void RunPageTest(TestSettings settings) { string url; using (var browser = new IE(ConfigurationManager.AppSettings["WebpageTestUrl"])) { browser.TextField(Find.ById("url")).Value = settings.Url; if (!string.IsNullOrEmpty(settings.TestLocation)) browser.SelectList(Find.ById("location")).SelectByValue(settings.TestLocation); if (!string.IsNullOrEmpty(settings.Browser)) browser.SelectList(Find.ById("browser")).SelectByValue(settings.Browser); browser.Link(Find.ById("advanced_settings")).ClickNoWait(); if (!string.IsNullOrEmpty(settings.Speed)) browser.SelectList(Find.ById("connection")).SelectByValue(settings.Speed); if (settings.IsPrivate) browser.CheckBox(Find.ById("keep_test_private")).Change(); if (!string.IsNullOrEmpty(settings.Username)) browser.TextField(Find.ById("username")).TypeText(settings.Username); if (!string.IsNullOrEmpty(settings.Password)) browser.TextField(Find.ById("password")).TypeText(settings.Password); browser.Button(Find.ByName("submit")).Click(); browser.WaitUntilContainsText("First View", settings.Timeout); if (browser.ContainsText("partially complete")) { Thread.Sleep(10000); browser.Refresh(); } browser.WaitUntilContainsText("Raw page data", settings.Timeout); url = browser.Link(Find.ByText("Raw page data")).Url; } var csvRequest = (HttpWebRequest) WebRequest.Create(url); csvRequest.Accept = "text/csv"; var data = new List<PageData>(); using (var stream = csvRequest.GetResponse().GetResponseStream()) { if (stream != null) { using (var reader = new StreamReader(stream)) { using (var context = new CsvReader(reader)) { while (context.Read()) { var counter = data.Count; var item = new PageData(); item.EventName = counter == 0 ? "Empty Cache" : "Cached Run " + counter; item.Url = context.GetField<string>(3); item.LoadTime = TimeSpan.FromMilliseconds(context.GetField<int>(4)); item.TimeToFirstByte = TimeSpan.FromMilliseconds(context.GetField<int>(5)); item.Requests = context.GetField<int>(11); data.Add(item); } } } } } var host = ConfigurationManager.AppSettings["MetricTracking:Host"]; var port = int.Parse(ConfigurationManager.AppSettings["MetricTracking:Port"]); using (var metric = new MetricTracker(host, port)) { foreach (var run in data) { Console.WriteLine(run.EventName + "\t" + run.LoadTime); var prefix = settings.Prefix + run.EventName.Replace(" ", string.Empty) + "."; metric.Timing(prefix + "LoadTime", run.LoadTime.TotalMilliseconds); metric.Timing(prefix + "TimeToFirstByte", run.TimeToFirstByte.TotalMilliseconds); metric.Value(prefix + "Requests", run.Requests); } } }
/// <summary> /// Setups the Test website. /// </summary> private void SetupWebsite() { IEInstance = new IE(); IEInstance.GoTo("{0}install/default.aspx".FormatWith(TestConfig.TestForumUrl)); IEInstance.ShowWindow(NativeMethods.WindowShowStyle.Maximize); IEInstance.WaitForComplete(5000); // Enter Config Password IEInstance.TextField(Find.ById("InstallWizard_txtEnteredPassword")).TypeText(TestConfig.ConfigPassword); IEInstance.Button(Find.ById("InstallWizard_StepNavigationTemplateContainerID_StepNextButton")).Click(); IEInstance.Button(Find.ById("InstallWizard_StepNavigationTemplateContainerID_StepPreviousButton")).Click(); IEInstance.RadioButton(Find.ById("InstallWizard_rblYAFDatabase_1")).Click(); // Enter YAF Database Connection IEInstance.TextField(Find.ById("InstallWizard_Parameter1_Value")).TypeText(TestConfig.DatabaseServer); IEInstance.TextField(Find.ById("InstallWizard_Parameter2_Value")).TypeText(TestConfig.TestDatabase); // Test Database Conncection IEInstance.Button(Find.ById("InstallWizard_btnTestDBConnection")).Click(); Assert.IsTrue(IEInstance.ContainsText("Connection Succeeded"), "Database Connection Is Wrong"); IEInstance.Button(Find.ById("InstallWizard_StepNavigationTemplateContainerID_StepNextButton")).Click(); // Test Mail Setup IEInstance.TextField(Find.ById("InstallWizard_txtTestFromEmail")).TypeText(TestConfig.TestForumMail); IEInstance.TextField(Find.ById("InstallWizard_txtTestToEmail")).TypeText("*****@*****.**"); IEInstance.Button(Find.ById("InstallWizard_btnTestSmtp")).Click(); Assert.IsTrue( IEInstance.ContainsText("Mail Sent. Verify it's received at your entered email address."), "Mail Send Failed"); if (TestConfig.UseTestMailServer) { SmtpMessage mail = SmtpServer.ReceivedEmail[0]; Assert.AreEqual("*****@*****.**", mail.ToAddresses[0].ToString(), "Receiver does not match"); Assert.IsTrue(mail.FromAddress.ToString().Contains(TestConfig.TestForumMail), "Sender does not match"); Assert.AreEqual( "Test Email From Yet Another Forum.NET", mail.Headers["Subject"], "Subject does not match"); Assert.AreEqual( "The email sending appears to be working from your YAF installation.", mail.MessageParts[0].BodyView, "Body does not match"); } // Now continue to Initialize Database IEInstance.Button(Find.ById("InstallWizard_StepNavigationTemplateContainerID_StepNextButton")).Click(); // Initialize Database IEInstance.Button(Find.ById("InstallWizard_StepNavigationTemplateContainerID_StepNextButton")).ClickNoWait(); IEInstance.WaitUntilContainsText("Create Board", 300); Assert.IsTrue(IEInstance.ContainsText("Create Board")); // Board Settings IEInstance.TextField(Find.ById("InstallWizard_TheForumName")).TypeText(TestConfig.TestApplicationName); IEInstance.TextField(Find.ById("InstallWizard_ForumEmailAddress")).TypeText(TestConfig.TestForumMail); // Admin User IEInstance.TextField(Find.ById("InstallWizard_UserName")).TypeText(TestConfig.AdminUserName); IEInstance.TextField(Find.ById("InstallWizard_AdminEmail")).TypeText(TestConfig.TestForumMail); IEInstance.TextField(Find.ById("InstallWizard_Password1")).TypeText(TestConfig.AdminPassword); IEInstance.TextField(Find.ById("InstallWizard_Password2")).TypeText(TestConfig.AdminPassword); IEInstance.TextField(Find.ById("InstallWizard_SecurityQuestion")).TypeText(TestConfig.AdminPassword); IEInstance.TextField(Find.ById("InstallWizard_SecurityAnswer")).TypeText(TestConfig.AdminPassword); IEInstance.Button(Find.ById("InstallWizard_StepNavigationTemplateContainerID_StepNextButton")).ClickNoWait(); IEInstance.WaitUntilContainsText("Setup/Upgrade Finished", 300); Assert.IsTrue(IEInstance.ContainsText("Setup/Upgrade Finished")); IEInstance.Button(Find.ById("InstallWizard_FinishNavigationTemplateContainerID_FinishButton")).ClickNoWait(); IEInstance.WaitUntilContainsText("Welcome Guest!", 300); Assert.IsTrue(IEInstance.ContainsText("Welcome Guest!"), "Installation failed"); }