コード例 #1
0
    public static List <Extrato> Sync(Dictionary <string, DateTime> contas)
    {
        var extratos = new List <Extrato>();

        IWebDriver driver    = null;
        var        cultureBR = new CultureInfo("pt-BR");

        try
        {
            UI.StartChrome(ref driver, 3);

            Bradesco_PF.LogIn(driver);

            var cc_ultimos   = Bradesco_PF.ReadExtrato(driver, contas, cultureBR, TipoConta.Conta_Corrente, TipoLink.Ultimos_Lancamentos);
            var cc_range     = Bradesco_PF.ReadExtrato(driver, contas, cultureBR, TipoConta.Conta_Corrente, TipoLink.Por_Periodo);
            var poup_ultimos = Bradesco_PF.ReadExtrato(driver, contas, cultureBR, TipoConta.Poupanca, TipoLink.Ultimos_Lancamentos);
            var poup_range   = Bradesco_PF.ReadExtrato(driver, contas, cultureBR, TipoConta.Poupanca, TipoLink.Por_Periodo);

            Bradesco_PF.LogOff(driver);

            if (cc_ultimos.Count > 0 && cc_range.Count > 0)
            {
                cc_ultimos[cc_ultimos.Count - 1].saldo = cc_range[cc_range.Count - 1].saldo;
            }
            if (poup_ultimos.Count > 0 && poup_range.Count > 0)
            {
                poup_ultimos[poup_ultimos.Count - 1].saldo = poup_range[poup_range.Count - 1].saldo;
            }

            extratos.AddRange(cc_ultimos);
            extratos.AddRange(cc_range);
            extratos.AddRange(poup_ultimos);
            extratos.AddRange(poup_range);
        }
        catch (Exception ex)
        {
            UI.SaveHtmlAndPrint(driver, "Bradesco", ex);
            throw ex;
        }
        finally
        {
            if (driver != null)
            {
                try { driver.Close(); } catch { }
                driver.Quit();
                driver.Dispose();
                driver = null;
            }
        }

        // Retorna os registros
        return(extratos);
    }
コード例 #2
0
    private static void LogIn(IWebDriver driver)
    {
        driver.Url = "https://banco.bradesco/html/classic/index.shtm";
        UI.WaitPageLoad(driver);

        // ------------------------------------------------------------------------------------------------------------------------------
        // Tela: Home
        // ------------------------------------------------------------------------------------------------------------------------------

        UI.WaitForDisplayed(driver, By.Id("AGN"));
        UI.SetTextBoxValue(driver, By.Id("AGN"), "agencia");
        UI.SetTextBoxValue(driver, By.Id("CTA"), "conta");
        UI.SetTextBoxValue(driver, By.Id("DIGCTA"), "digito");
        UI.Click(driver, By.ClassName("btn-ok"));
        UI.Wait(1);

        // Tela: Aparece às vezes, "Acesso não autorizado. Já existe um acesso em andamento para esta conta."
        if (UI.IsDisplayed(driver, By.Id("modalLogin")))
        {
            UI.Click(driver, By.Id("cancelarAcessoModalForm:_id178"));
            UI.WaitPageLoad(driver);
            Bradesco_PF.LogIn(driver);
        }

        // ------------------------------------------------------------------------------------------------------------------------------
        // Tela: Senha e Token
        // ------------------------------------------------------------------------------------------------------------------------------

        // Neste ponto aguarda digitar o Token
        UI.WaitForClickable(driver, By.Id("ul_teclado_virtual"), 300); // 5 minutos para digitar o token

        var teclado = UI.WaitForDisplayed(driver, By.Id("ul_teclado_virtual"));

        UI.Click(driver, teclado.FindElement(By.LinkText("senha")));
        UI.Click(driver, teclado.FindElement(By.LinkText("senha")));
        UI.Click(driver, teclado.FindElement(By.LinkText("senha")));
        UI.Click(driver, teclado.FindElement(By.LinkText("senha")));
        UI.Wait(2);
        UI.Click(driver, By.XPath("//*[@id=\"loginbotoes:botaoAvancar\"]"));

        // Verifica se abriu a popup de usuário já logado
        //UI.WaitPageLoad(driver);
        //UI.Wait(1);

        //if (UI.IsDisplayed(driver, By.Id("modalLogin")))
        //{
        //    UI.ClickWhenClickable(driver, By.Id("cancelarAcessoModalForm:_id178"));
        //    UI.WaitPageLoad(driver);
        //    LogIn(driver);
        //    return;
        //}

        UI.WaitPageLoad(driver);
        UI.Wait(3);

        // Fechar a popup que aparecer
        //if (UI.IsDisplayed(driver, By.Id("modal_infra_estrutura")))
        //{
        //    UI.WaitIFrameLoad(driver, "modal_infra_estrutura");

        //    if (UI.IsDisplayed(driver, By.XPath("//a[@title = 'Fechar']")))
        //    {
        //        UI.ClickWhenClickable(driver, By.XPath("//a[@title = 'Fechar']"));
        //    }
        //}

        //if (UI.IsDisplayed(driver, By.XPath("//*[@id=\"entretela\"]/div/div[3]/a")))
        //{
        //    UI.Wait(1);
        //    UI.ClickWhenClickable(driver, By.XPath("//*[@id=\"entretela\"]/div/div[3]/a"));
        //}
    }