Esempio n. 1
0
        // methods
        private async Task solveCaptcha(Job j)
        {
            string captchaResponse = null;

            j.Status = "Getting captcha response...";

            if (Manager.use2Captcha)
            {
                _2Captcha captcha = new _2Captcha(Manager.myKey, Manager.siteKey);
                captchaResponse = await captcha.solveCaptcha();
            }
            else if (Manager.useAntiCaptcha)
            {
                AntiCaptcha captcha = new AntiCaptcha(Manager.myKey, Manager.siteKey);
                captchaResponse = captcha.solveCaptcha();
            }


            if (captchaResponse == "false")
            {
                j.Status = "Error Getting Captcha!";
            }
            else
            {
                //_status = true;
                j.Status          = "Got captcha response!";
                j.CaptchaResponse = captchaResponse;
            }
        }
Esempio n. 2
0
        /// <inheritdoc />
        public override void Process(BotData data)
        {
            if (!data.GlobalSettings.Captchas.BypassBalanceCheck)
            {
                base.Process(data);
            }

            data.Log(new LogEntry("Solving reCaptcha...", Colors.White));

            string recapResponse = "";

            CaptchaServices.CaptchaService service = null;

            switch (data.GlobalSettings.Captchas.CurrentService)
            {
            case CaptchaService.ImageTypers:
                service = new ImageTyperz(data.GlobalSettings.Captchas.ImageTypToken, data.GlobalSettings.Captchas.Timeout);
                break;

            case CaptchaService.AntiCaptcha:
                service = new AntiCaptcha(data.GlobalSettings.Captchas.AntiCapToken, data.GlobalSettings.Captchas.Timeout);
                break;

            case CaptchaService.DBC:
                service = new DeathByCaptcha(data.GlobalSettings.Captchas.DBCUser, data.GlobalSettings.Captchas.DBCPass, data.GlobalSettings.Captchas.Timeout);
                break;

            case CaptchaService.TwoCaptcha:
                service = new TwoCaptcha(data.GlobalSettings.Captchas.TwoCapToken, data.GlobalSettings.Captchas.Timeout);
                break;

            case CaptchaService.DeCaptcher:
                service = new DeCaptcher(data.GlobalSettings.Captchas.DCUser, data.GlobalSettings.Captchas.DCPass, data.GlobalSettings.Captchas.Timeout);
                break;

            case CaptchaService.AZCaptcha:
                service = new AZCaptcha(data.GlobalSettings.Captchas.AZCapToken, data.GlobalSettings.Captchas.Timeout);
                break;

            case CaptchaService.SolveRecaptcha:
                service = new SolveReCaptcha(data.GlobalSettings.Captchas.SRUserId, data.GlobalSettings.Captchas.SRToken, data.GlobalSettings.Captchas.Timeout);
                break;

            case CaptchaService.CaptchasIO:
                service = new CaptchasIO(data.GlobalSettings.Captchas.CIOToken, data.GlobalSettings.Captchas.Timeout);
                break;

            default:
                throw new Exception("This service cannot solve reCaptchas!");
            }
            recapResponse = service.SolveRecaptcha(siteKey, ReplaceValues(url, data));

            data.Log(recapResponse == "" ? new LogEntry("Couldn't get a reCaptcha response from the service", Colors.Tomato) : new LogEntry("Succesfully got the response: " + recapResponse, Colors.GreenYellow));
            if (VariableName != "")
            {
                data.Log(new LogEntry("Response stored in variable: " + variableName, Colors.White));
                data.Variables.Set(new CVar(variableName, recapResponse));
            }
        }
Esempio n. 3
0
        private void checkBalanceButton_Click(object sender, RoutedEventArgs e)
        {
            // Save
            IOManager.SaveSettings(Globals.rlSettingsFile, Globals.rlSettings);

            double balance = 0;

            try
            {
                switch (Globals.rlSettings.Captchas.CurrentService)
                {
                case BlockCaptcha.CaptchaService.AntiCaptcha:
                    balance = new AntiCaptcha(Globals.rlSettings.Captchas.AntiCapToken, 0).GetBalance();
                    break;

                case BlockCaptcha.CaptchaService.DBC:
                    balance = new DeathByCaptcha(Globals.rlSettings.Captchas.DBCUser, Globals.rlSettings.Captchas.DBCPass, 0).GetBalance();
                    break;

                case BlockCaptcha.CaptchaService.DeCaptcher:
                    balance = new DeCaptcher(Globals.rlSettings.Captchas.DCUser, Globals.rlSettings.Captchas.DCPass, 0).GetBalance();
                    break;

                case BlockCaptcha.CaptchaService.ImageTypers:
                    balance = new ImageTyperz(Globals.rlSettings.Captchas.ImageTypToken, 0).GetBalance();
                    break;

                case BlockCaptcha.CaptchaService.TwoCaptcha:
                    balance = new TwoCaptcha(Globals.rlSettings.Captchas.TwoCapToken, 0).GetBalance();
                    break;

                case BlockCaptcha.CaptchaService.RuCaptcha:
                    balance = new RuCaptcha(Globals.rlSettings.Captchas.RuCapToken, 0).GetBalance();
                    break;

                case BlockCaptcha.CaptchaService.AZCaptcha:
                    balance = new AZCaptcha(Globals.rlSettings.Captchas.AZCapToken, 0).GetBalance();
                    break;

                case BlockCaptcha.CaptchaService.SolveRecaptcha:
                    balance = new SolveReCaptcha(Globals.rlSettings.Captchas.SRUserId, Globals.rlSettings.Captchas.SRToken, 0).GetBalance();
                    break;

                case BlockCaptcha.CaptchaService.CaptchasIO:
                    balance = new CaptchasIO(Globals.rlSettings.Captchas.CIOToken, 0).GetBalance();
                    break;

                default:
                    balance = 999;
                    break;
                }
            }
            catch { balanceLabel.Content = "WRONG TOKEN / CREDENTIALS"; balanceLabel.Foreground = Globals.GetBrush("ForegroundBad"); return; }

            balanceLabel.Content    = balance;
            balanceLabel.Foreground = balance > 0 ? Globals.GetBrush("ForegroundGood") : Globals.GetBrush("ForegroundBad");
        }
Esempio n. 4
0
    private async Task <string> SolveImage(string imageBase64)
    {
        AntiCaptchaResult antiCaptchaResult = await AntiCaptcha.SolveImage(imageBase64);

        if (antiCaptchaResult.Success)
        {
            return(antiCaptchaResult.Response);
        }
        return(null);
    }
Esempio n. 5
0
    private async Task <string> SolveRecaptcha(string googleSiteKey, string pageUrl, bool isInvisible)
    {
        AntiCaptchaResult antiCaptchaResult = await AntiCaptcha.SolveReCaptchaV2(googleSiteKey, pageUrl, isInvisible);

        if (antiCaptchaResult.Success)
        {
            return(antiCaptchaResult.Response);
        }
        return(null);
    }
Esempio n. 6
0
        public static bool TryInitialize()
        {
            string anticaptchaKey = File.Exists("anticaptcha_key.txt") ?
                                    File.ReadAllText("anticaptcha_key.txt") : null;

            if (anticaptchaKey != null)
            {
                AnticaptchaWorker.Api = new AntiCaptcha(anticaptchaKey);
                return(true);
            }

            return(false);
        }
Esempio n. 7
0
    private async void SetBalance()
    {
        AntiCaptchaResult antiCaptchaResult = await AntiCaptcha.GetBalance();

        if (antiCaptchaResult.Success)
        {
            Balance = Convert.ToDecimal(antiCaptchaResult.Response);
        }
        else
        {
            Balance = 0m;
        }
    }
Esempio n. 8
0
        public DecodificadorBusiness(string Base64)
        {
            _base64 = Base64;

            //Configurando instância do antigate com o token de acesso.
            _antiGate = new AntiCaptcha(ConfigurationManager.AppSettings["TokenAntigate"])
            {
                CheckDelay      = 5000,
                CheckRetryCount = 20,
                SlotRetry       = 5,
                SlotRetryDelay  = 800
            };

            //Gerando URL da imagem cache..
            GetPathCaptcha();
        }
Esempio n. 9
0
        private static string GetCapcha(string nameFile)
        {
            var answer = "";

            try
            {
                if (string.IsNullOrWhiteSpace(Config.GetConfig().CapchaId))
                {
                    throw new Exception("Не задан ключ для антикапчи");
                }

                var anticap = new AntiCaptcha(Config.GetConfig().CapchaId)
                {
                    CheckDelay      = 10000,
                    CheckRetryCount = 20,
                    SlotRetry       = 5,
                    SlotRetryDelay  = 800
                };
                //anticap.Parameters.Set("is_russian", "1");

                // отправляем файл и ждем ответа
                answer = anticap.GetAnswer(nameFile);

                if (answer == null || "error_captcha_unsolvable".Equals(answer) || "ERROR_BAD_DUPLICATES".Equals(answer))
                {
                    throw new Exception("Ошибка при распознавании капчи");
                }

                return(answer);
            }
            //TODO когда появится какая-нибудь реальная ошибка, тогда и будем думать о полном выходе из программы
            catch (AntigateErrorException)
            {
                // Antigate ответил одной из документированных в API ошибкой
            }
            catch (Exception)
            {
                // возникло исключение
            }

            return(answer);
        }
Esempio n. 10
0
        private async void getBalance()
        {
            double balance = 0;
            string title   = null;

            if (radioButton2Captcha.IsChecked == true)
            {
                _2Captcha twoCaptcha = new _2Captcha(Manager.myKey, Manager.siteKey);
                balance = await twoCaptcha.getBalance();

                title = "2Captcha";
            }
            else if (radioButtonAntiCaptcha.IsChecked == true)
            {
                AntiCaptcha antiCaptcha = new AntiCaptcha(Manager.myKey, Manager.siteKey);
                balance = antiCaptcha.getBalance();
                title   = "Anti-Captcha";
            }

            await this.ShowMessageAsync(title, "Balance " + balance, MessageDialogStyle.Affirmative);
        }
Esempio n. 11
0
        string RecognizeCaptcha(string ImagePath)
        {
            DebugLog.WriteLine("Starting recognizing captcha...");
            DebugLog.WriteLine("Image file: " + ImagePath);


            string result = null;

            AntiCaptcha anticap = new AntiCaptcha(AntiCaptchaKey);

            anticap.CheckDelay      = 10000;
            anticap.CheckRetryCount = 20;
            anticap.SlotRetry       = 5;
            anticap.SlotRetryDelay  = 800;


            try
            {
                result = anticap.GetAnswer(ImagePath);

                if (result == null)
                {
                    DebugLog.WriteLine("AntiCaptcha: no answer");
                    return(null);
                }
            }
            catch (Exception e)
            {
                DebugLog.WriteLine("AntiCaptcha error: " + e.Message);
                return(null);
            }

            DebugLog.WriteLine("Captcha code is: " + result);


            return(result);
        }
Esempio n. 12
0
        public string ImageToText(string imageName)
        {
            var antiCaptcha = new AntiCaptcha(Profile.AntiCaptchaApiKey, imageName);

            string result;
            var    id = antiCaptcha.UploadFile();

            if (id.StartsWith("OK|"))
            {
                id     = id.Replace("OK|", "");
                result = antiCaptcha.Recognize(id);

                if (result.StartsWith("OK|"))
                {
                    result = result.Replace("OK|", "");
                }
            }
            else
            {
                result = id;
            }

            return(result);
        }
Esempio n. 13
0
        public override async Task <string> GetCaptchaResponse(string siteKey, string url)
        {
            AntiCaptcha            client = new AntiCaptcha(_apiKey);
            NoCaptchaTaskProxyless task   = new NoCaptchaTaskProxyless
            {
                websiteKey = siteKey,
                websiteURL = url
            };
            TaskResponse response = await client.SubmitTask(task);

            while (true)
            {
                NoCaptchaSolution solution = await client.GetNoCaptchaSolution(response.taskId);

                if (solution.errorId != 0)
                {
                    return("");
                }
                if (solution.status == "ready")
                {
                    return(solution.solution.gRecaptchaResponse);
                }
            }
        }
Esempio n. 14
0
        static async Task Foo()
        {
            /*
             * Class initialization
             * Optionally you can pass 2nd parameter `httpClient` with custom HttpClient to use while requesting API
             */
            var captcha           = new AntiCaptcha("API_KEY");
            var captchaCustomHttp = new AntiCaptcha("API_KEY", new HttpClient());

            /*
             * Get current balance
             */
            var balance = await captcha.GetBalance();

            /*
             * Type: Image
             *
             * Documentation (anti-captcha): https://anti-captcha.com/apidoc/image
             */
            var image = await captcha.SolveImage("BASE64_IMAGE");

            /*
             * Type: ReCaptcha V2
             * Optionally you can pass 3rd parameter `isInvisible` to indicate if the reCaptcha is setup as invisible
             *
             * Homepage: https://www.google.com/recaptcha/
             * Documentation (vendor): https://developers.google.com/recaptcha/docs/display
             * Documentation (anti-captcha): https://anti-captcha.com/apidoc/recaptcha
             */
            var reCaptcha = await captcha.SolveReCaptchaV2("SITE_KEY", "https://WEBSITE_URL");

            var reCaptchaInvisible = await captcha.SolveReCaptchaV2("SITE_KEY", "https://WEBSITE_URL", true);

            var reCaptchaWithProxy = await captcha.SolveReCaptchaV2("SITE_KEY", "https://WEBSITE_URL", new AntiCaptchaProxy(ProxyType.Http, "PROXY_ADDRESS", 8080), "USER_AGENT");

            /*
             * Type: ReCaptcha V3
             * If you get ERROR_INCORRECT_SESSION_DATA error you may need to increase minScore value
             *
             * Homepage: https://www.google.com/recaptcha/
             * Documentation (vendor): https://developers.google.com/recaptcha/docs/v3
             * Documentation (anti-captcha): https://anti-captcha.com/apidoc/recaptcha
             */
            var reCaptchaV3 = await captcha.SolveReCaptchaV3("SITE_KEY", "https://WEBSITE_URL", 0.9, "SOME_ACTION");

            /*
             * Type: hCaptcha
             *
             * Homepage: https://www.hcaptcha.com/
             * Documentation (vendor): https://docs.hcaptcha.com/
             * Documentation (anti-captcha): https://anti-captcha.com/apidoc/hcaptcha
             */
            var hCaptcha = await captcha.SolveHCaptcha("SITE_KEY", "https://WEBSITE_URL");

            var hCaptchaWithProxy = await captcha.SolveHCaptcha("SITE_KEY", "https://WEBSITE_URL", new AntiCaptchaProxy(ProxyType.Http, "PROXY_ADDRESS", 8080), "USER_AGENT");

            /*
             * Type: GeeTest
             *
             * Homepage: https://www.geetest.com/en
             * Documentation (vendor): https://docs.geetest.com/en
             * Documentation (anti-captcha): https://anti-captcha.com/apidoc/geetest
             */
            var geeTest = await captcha.SolveGeeTest("SITE_KEY", "https://WEBSITE_URL", "CHALLENGE");

            var geeTestWithProxy = await captcha.SolveGeeTest("SITE_KEY", "https://WEBSITE_URL", "CHALLENGE", new AntiCaptchaProxy(ProxyType.Http, "PROXY_ADDRESS", 8080), "USER_AGENT");

            /*
             * Type: FunCaptcha
             *
             * Documentation (anti-captcha): https://anti-captcha.com/apidoc/funcaptcha
             */
            var funCaptcha = await captcha.SolveFunCaptcha("SITE_KEY", "https://WEBSITE_URL");

            var funCaptchaWithProxy = await captcha.SolveFunCaptcha("SITE_KEY", "https://WEBSITE_URL", new AntiCaptchaProxy(ProxyType.Http, "PROXY_ADDRESS", 8080), "USER_AGENT");

            /*
             * Type: SquareNet
             */
            var squareNet = await captcha.SolveSquareNet("BASE64_IMAGE", "OBJECT_NAME", 3, 3);

            Debugger.Break();
        }
Esempio n. 15
0
        /// <summary>
        /// Does the job.
        /// </summary>
        /// <returns>null</returns>
        public bool DoJob()
        {
            _helper.Log(ConsoleColor.Cyan, "[INFO] Initialize connection!");

            var browser = new Browser();

            browser.RequestLogged += OnBrowserRequestLogged;
            browser.MessageLogged += new Action <Browser, string>(OnBrowserMessageLogged);
            browser.GenerateUserAgent();

            _helper.Log(ConsoleColor.Yellow, "[SIMPLE BROWSER] UserAgent " + browser.UserAgent);

            Random proxyRandom       = new Random();
            var    proxyFile         = @"Proxy-Online.txt";
            var    lines             = File.ReadAllLines(proxyFile);
            var    selectRandomProxy = proxyRandom.Next(0, lines.Length);

            _helper.Log(ConsoleColor.Green, "[INFO] Total proxies for this session is " + lines.Length);

            if (_helper.CanPing(lines[selectRandomProxy].Substring(0, lines[selectRandomProxy].LastIndexOf(':'))))
            {
                _helper.Log(ConsoleColor.Magenta, "[INFO] Dead proxy! Trying new one!");
                IsDone = false;
            }


            if (lines.Length > selectRandomProxy)
            {
                browser.SetProxy(lines[selectRandomProxy]);
            }
            _helper.Log(ConsoleColor.Cyan, "[INFO] Setting proxy to: " + lines[selectRandomProxy]);

            try
            {
                browser.Navigate(Url, 25000);
                if (LastRequestFailed(browser))
                {
                    _helper.Log(ConsoleColor.Red, "[ERROR] Can't conect to E-Konsulat page!");
                    return(IsDone = false);
                }

                _helper.Log(ConsoleColor.Green, "[INFO] Succsesful connection to website!");

                #region check the city captha image
                if (IdCity == "83")
                {
                    _capthaHtmlResult = browser.Find("c_uslugi_rejestracjaterminu_cp_botdetectcaptcha_CaptchaImage");
                    var capthaImage = browser.Find("img", FindBy.Id, "c_uslugi_rejestracjaterminu_cp_botdetectcaptcha_CaptchaImage").GetAttribute("src");
                    _properUrl = $"https://secure.e-konsulat.gov.pl{capthaImage}";
                }
                else
                {
                    _capthaHtmlResult = browser.Find("cp_KomponentObrazkowy_CaptchaImageID");
                    var capthaImage = browser.Find("img", FindBy.Id, "cp_KomponentObrazkowy_CaptchaImageID").GetAttribute("src");
                    _properUrl = $"https://secure.e-konsulat.gov.pl{capthaImage.Substring(2)}";
                }
                #endregion

                if (_capthaHtmlResult.Exists)
                {
                    var fileNameGuid = Guid.NewGuid();

                    _helper.Log(ConsoleColor.Green, "[INFO] Link to captha: " + _properUrl);
                    _helper.Log(ConsoleColor.Green, "[INFO] Saving to file: " + fileNameGuid);

                    #region download image by city

                    if (IdCity == "83")
                    {
                        browser.DownloadImageFromStream(_properUrl, @"Assets\", fileNameGuid + ".png");
                    }
                    else
                    {
                        browser.DownloadImageFromStream(_properUrl, @"Assets\", fileNameGuid + ".png");
                    }

                    #endregion

                    #region save online proxies to file
                    if (proxyFile.Equals(@"Proxy.txt"))
                    {
                        _helper.SaveWorkedProxyToFile(lines[selectRandomProxy]);
                    }
                    #endregion

                    #region work with captha

                    var anticaptha = new AntiCaptcha(AntigateKey)
                    {
                        CheckDelay      = 2500,
                        SlotRetryDelay  = 250,
                        SlotRetry       = 2,
                        CheckRetryCount = 10
                    };
                    anticaptha.Parameters.Set("regsense", "1");
                    anticaptha.Parameters.Set("phrase", "0");


                    var captha = anticaptha.GetAnswer(@"Assets\" + fileNameGuid + ".png");

                    if (captha != null)
                    {
                        _helper.Log(ConsoleColor.Green, "[INFO] Captha code is " + captha);


                        if (IdCity == "83")
                        {
                            _capthaInput = browser.Find("cp_BotDetectCaptchaCodeTextBox");
                        }
                        else
                        {
                            _capthaInput = browser.Find("cp_KomponentObrazkowy_VerificationID");
                        }

                        if (_capthaInput.Exists)
                        {
                            _capthaInput.Value = captha;
                            var btnSubmitCaptha = browser.Find("cp_btnDalej");
                            btnSubmitCaptha.Click();

                            if (LastRequestFailed(browser))
                            {
                                _helper.Log(ConsoleColor.Red, "[ERROR] Can't conect to E-Konsulat page!");
                                return(IsDone = false);
                            }

                            // Errorr captha
                            var errorCaptha = browser.Find("cp_lblC");
                            if (errorCaptha.Exists)
                            {
                                anticaptha.FalseCaptcha();
                                _helper.Log(ConsoleColor.Red, "[ERROR] Wrong captha code!");
                                return(IsDone = false);
                            }

                            // Other city
                            if (IdCity == "83")
                            {
                                browser.AutoRedirect = true;
                                selectFor            = browser.Find(ElementType.SelectBox, FindBy.Id, "cp_cbRodzajUslugi");

                                if (selectFor.Exists)
                                {
                                    selectFor.DoAspNetLinkPostBack();
                                    selectFor.Value = visaForLuck;

                                    //selectFor.DoAspNetLinkPostBack();
                                    _helper.Log(ConsoleColor.White, "[ELEMENT] Select for " + selectFor.Value);
                                    Thread.Sleep(1000);
                                    if (LastRequestFailed(browser))
                                    {
                                        _helper.Log(ConsoleColor.Red, "[ERROR] Can't conect to E-Konsulat page!");
                                        return(IsDone = false);
                                    }
                                }
                            }


                            // Succses captha
                            var dateEl = browser.Find("span", FindBy.Id, "cp_lblBrakTerminow");
                            if (dateEl.Exists)
                            {
                                _helper.Log(ConsoleColor.Magenta, "[INFO] No dates avaliable. " + dateEl.XElement.Value);
                                IsDone = false;
                            }


                            // Succses captha and founded new dates
                            var dateAval = browser.Find(ElementType.SelectBox, FindBy.Id, "cp_cbDzien");
                            if (dateAval.Exists)
                            {
                                var dateAvalOptions = browser.Select("#cp_cbDzien option");

                                foreach (var opt in dateAvalOptions)
                                {
                                    _helper.Log(ConsoleColor.Magenta, "[INFO] Avaliable date is " + opt.Value);
                                    _dateList.Add(opt.Value);
                                }

                                dateAval.Value = _dateList[1].ToString();
                                _helper.Log(ConsoleColor.Magenta, "[INFO] Selecting first option date " + _dateList[1]);
                                _helper.Log(ConsoleColor.Green, "[INFO] Click on date select");

                                if (LastRequestFailed(browser))
                                {
                                    _helper.Log(ConsoleColor.Red, "[ERROR] Can't conect to E-Konsulat page!");
                                    return(IsDone = false);
                                }

                                browser.Find("cp_btnRezerwuj").Click();
                                _helper.Log(ConsoleColor.Green, "[INFO] Trying to submit date");
                                if (LastRequestFailed(browser))
                                {
                                    _helper.Log(ConsoleColor.Red, "[ERROR] Can't conect to E-Konsulat page!");
                                    return(IsDone = false);
                                }

                                _helper.Log(ConsoleColor.Green, "[INFO] Get the form! Downloading user application!");
                                _helper.Log(ConsoleColor.Magenta, "[XML] Loading data from file");

                                // Go throught Webdriver
                                var chromeOptions = new ChromeOptions();

                                var proxy = new Proxy();
                                proxy.Kind      = ProxyKind.Manual;
                                proxy.HttpProxy = lines[selectRandomProxy];
                                proxy.FtpProxy  = lines[selectRandomProxy];
                                proxy.SslProxy  = lines[selectRandomProxy];


                                chromeOptions.Proxy = proxy;
                                IWebDriver driver = new ChromeDriver(@"Chrome\", chromeOptions);
                                //Cookie cookie = new Cookie();
                                driver.Manage().Window.Maximize();
                                driver.Navigate().GoToUrl(browser.Url);
                                var driverCookie  = driver.Manage().Cookies;
                                var browserCookie = browser.Cookies;
                                var cookie        = _helper.GetAllCookies(browserCookie);

                                for (int i = 0; i < cookie.Count; i++)
                                {
                                    driverCookie.AddCookie(new OpenQA.Selenium.Cookie(cookie[i].Name, cookie[i].Value,
                                                                                      cookie[i].Domain, cookie[i].Path, cookie[i].Expires));
                                }

                                // Element
                                var firstName               = driver.FindElement(By.Id(FormHelper.FirstNameInput));
                                var lastName                = driver.FindElement(By.Id(FormHelper.LastNameInput));
                                var lastNameBirthday        = driver.FindElement(By.Id(FormHelper.LastNameBirthdayInput));
                                var dateOfBirthday          = driver.FindElement(By.Id(FormHelper.DateOfBirthdayInput));
                                var placeOfBirthday         = driver.FindElement(By.Id(FormHelper.PlaceOfBirthdayInput));
                                var countryOfBirthday       = driver.FindElement(By.Id(FormHelper.CountryOfBirthdayInput));
                                var currentNat              = driver.FindElement(By.Id(FormHelper.CurrentNatInput));
                                var originalNat             = driver.FindElement(By.Id(FormHelper.OriginalNatInput));
                                var nationalId              = driver.FindElement(By.Id(FormHelper.NationalIdInput));
                                var numberOfTravelDoc       = driver.FindElement(By.Id(FormHelper.NumberOfTravelDocumentInput));
                                var numberOfTravelDateIssue =
                                    driver.FindElement(By.Id(FormHelper.NumberOfTravelDocumentDateIssueInput));
                                var numberOfTravelValid =
                                    driver.FindElement(By.Id(FormHelper.NumberOfTravelDocumentValidUntilInput));
                                var numberOfTravelIssuedBy =
                                    driver.FindElement(By.Id(FormHelper.NumberOfTravelDocumentIssuedByInput));
                                var appCountry      = driver.FindElement(By.Id(FormHelper.ApplicantCountrySelect));
                                var appState        = driver.FindElement(By.Id(FormHelper.ApplicantStateInput));
                                var appPlace        = driver.FindElement(By.Id(FormHelper.ApplicantPlaceInput));
                                var appPostalCode   = driver.FindElement(By.Id(FormHelper.ApplicantPostalCodeInput));
                                var appAddress      = driver.FindElement(By.Id(FormHelper.ApplicantAddressInput));
                                var appEmail        = driver.FindElement(By.Id(FormHelper.ApplicantEmailInput));
                                var appPhoneCode    = driver.FindElement(By.Id(FormHelper.ApplicantPhoneCodeInput));
                                var appPhone        = driver.FindElement(By.Id(FormHelper.ApplicantPhoneInput));
                                var curOcupState    = driver.FindElement(By.Id(FormHelper.CurrentOccupationStateSelect));
                                var curOcupProvince =
                                    driver.FindElement(By.Id(FormHelper.CurrentOccupationProvinceInput));
                                var curOcupPlace      = driver.FindElement(By.Id(FormHelper.CurrentOccupationPlaceInput));
                                var curOcupPostalCode =
                                    driver.FindElement(By.Id(FormHelper.CurrentOccupationPostalCodeInput));
                                var curOcupAddress   = driver.FindElement(By.Id(FormHelper.CurrentOccupationAddressInput));
                                var curOcupPhoneCode =
                                    driver.FindElement(By.Id(FormHelper.CurrentOccupationPhoneCodeInput));
                                var curOcupPhone       = driver.FindElement(By.Id(FormHelper.CurrentOccupationPhoneInput));
                                var curOcupName        = driver.FindElement(By.Id(FormHelper.CurrentOccupationNameInput));
                                var curOcupEmail       = driver.FindElement(By.Id(FormHelper.CurrentOccupationEmailInput));
                                var curOcupFaxCode     = driver.FindElement(By.Id(FormHelper.CurrentOccupationFaxCodeInput));
                                var curOcupFax         = driver.FindElement(By.Id(FormHelper.CurrentOccupationFaxInput));
                                var destinationCountry = driver.FindElement(By.Id(FormHelper.DestinationCountrySelect));
                                var firstEntry         = driver.FindElement(By.Id(FormHelper.FirstEntryCountrySelect));
                                var duration           = driver.FindElement(By.Id(FormHelper.DurationInput));
                                var arrDate            = driver.FindElement(By.Id(FormHelper.ArriveDateInput));
                                var deparDate          = driver.FindElement(By.Id(FormHelper.DepartureDateInput));
                                var recCountry         = driver.FindElement(By.Id(FormHelper.ReceivingPersonCountry));

                                XmlDocument xmlDocument = new XmlDocument();
                                xmlDocument.Load($@"Input\applicant_{IdApp}.xml");
                                XmlNodeList nodes = xmlDocument.DocumentElement?.SelectNodes("/applicants/applicant");

                                if (nodes != null)
                                {
                                    foreach (XmlNode node in nodes)
                                    {
                                        firstName.SendKeys(node.SelectSingleNode("FirstName")?.InnerText);
                                        lastName.SendKeys(node.SelectSingleNode("LastName")?.InnerText);
                                        lastNameBirthday.SendKeys(node.SelectSingleNode("LastNameBirthday")?.InnerText);
                                        dateOfBirthday.SendKeys(node.SelectSingleNode("DateOfBirthday")?.InnerText);
                                        placeOfBirthday.SendKeys(node.SelectSingleNode("PlaceOfBirthday")?.InnerText);
                                        countryOfBirthday.SendKeys(node.SelectSingleNode("CountryOfBirthday")?.InnerText);
                                        currentNat.SendKeys(node.SelectSingleNode("CurrentNat")?.InnerText);
                                        originalNat.SendKeys(node.SelectSingleNode("OriginalNat")?.InnerText);

                                        var sexState = node.SelectSingleNode("Sex")?.InnerText;
                                        if (sexState != null && sexState == "M")
                                        {
                                            driver.FindElement(By.Id(FormHelper.SexMaleCheckbox)).Click();
                                        }
                                        else if (sexState != null && sexState == "F")
                                        {
                                            driver.FindElement(By.Id(FormHelper.SexFemaleCheckbox)).Click();
                                        }

                                        var martialStatus = node.SelectSingleNode("MartialStatus")?.InnerText;
                                        if (martialStatus != null && martialStatus == "KP")
                                        {
                                            driver.FindElement(By.Id(FormHelper.MartialStatusSingleCheckbox)).Click();
                                        }
                                        else if (martialStatus != null && martialStatus == "ZZ")
                                        {
                                            driver.FindElement(By.Id(FormHelper.MartialStatusMarriedCheckbox)).Click();
                                        }
                                        else if (martialStatus != null && martialStatus == "SP")
                                        {
                                            driver.FindElement(By.Id(FormHelper.MartialStatusSeparatedCheckbox)).Click();
                                        }
                                        else if (martialStatus != null && martialStatus == "RR")
                                        {
                                            driver.FindElement(By.Id(FormHelper.MartialStatusDivorcedCheckbox)).Click();
                                        }
                                        else if (martialStatus != null && martialStatus == "WW")
                                        {
                                            driver.FindElement(By.Id(FormHelper.MartialStatusWidowerCheckbox)).Click();
                                        }
                                        else if (martialStatus != null && martialStatus == "IN")
                                        {
                                            driver.FindElement(By.Id(FormHelper.MartialStatusOtherCheckbox)).Click();
                                        }

                                        nationalId.SendKeys(node.SelectSingleNode("NationalId")?.InnerText);

                                        var typeOfDocument = node.SelectSingleNode("TypeOfTravelDocument")?.InnerText;
                                        if (typeOfDocument != null && typeOfDocument == "1")
                                        {
                                            driver.FindElement(By.Id(FormHelper.TypeOfTravelDocumentOriginalCheckbox))
                                            .Click();
                                        }
                                        else if (typeOfDocument != null && typeOfDocument == "2")
                                        {
                                            driver.FindElement(By.Id(FormHelper.TypeOfTravelDocumentDiplomaticCheckbox))
                                            .Click();
                                        }
                                        else if (typeOfDocument != null && typeOfDocument == "3")
                                        {
                                            driver.FindElement(By.Id(FormHelper.TypeOfTravelDocumentServiceCheckbox))
                                            .Click();
                                        }
                                        else if (typeOfDocument != null && typeOfDocument == "4")
                                        {
                                            driver.FindElement(By.Id(FormHelper.TypeOfTravelDocumentOfficialCheckbox))
                                            .Click();
                                        }
                                        else if (typeOfDocument != null && typeOfDocument == "5")
                                        {
                                            driver.FindElement(By.Id(FormHelper.TypeOfTravelDocumentSpecialCheckbox))
                                            .Click();
                                        }
                                        else if (typeOfDocument != null && typeOfDocument == "6")
                                        {
                                            driver.FindElement(By.Id(FormHelper.TypeOfTravelDocumentOtherCheckbox))
                                            .Click();
                                        }

                                        numberOfTravelDoc.SendKeys(
                                            node.SelectSingleNode("NumberOfTravelDocument")?.InnerText);
                                        numberOfTravelDateIssue.SendKeys(
                                            node.SelectSingleNode("NumberOfTravelDocumentDateIssue")?.InnerText);
                                        numberOfTravelValid.SendKeys(
                                            node.SelectSingleNode("NumberOfTravelDocumentValidUntil")?.InnerText);
                                        numberOfTravelIssuedBy.SendKeys(
                                            node.SelectSingleNode("NumberOfTravelDocumentIssuedBy")?.InnerText);

                                        driver.FindElement(By.Id(FormHelper.MinorDoesnotAppliedCheckbox)).Click();

                                        appCountry.SendKeys(node.SelectSingleNode("ApplicantCountry")?.InnerText);
                                        appState.SendKeys(node.SelectSingleNode("ApplicantState")?.InnerText);
                                        appPostalCode.SendKeys(node.SelectSingleNode("ApplicantPostalCode")?.InnerText);
                                        appAddress.SendKeys(node.SelectSingleNode("ApplicantAddress")?.InnerText);
                                        appEmail.SendKeys(node.SelectSingleNode("ApplicantEmail")?.InnerText);
                                        appPhoneCode.SendKeys(node.SelectSingleNode("ApplicantPhoneCode")?.InnerText);
                                        appPhone.SendKeys(node.SelectSingleNode("ApplicantPhone")?.InnerText);
                                        appPlace.SendKeys(node.SelectSingleNode("ApplicantPlace")?.InnerText);

                                        driver.FindElement(By.Id(FormHelper.OtherResidenceCheckbox)).Click();

                                        var curOccupation = node.SelectSingleNode("CurrentOccupation")?.InnerText;
                                        if (curOccupation != null && curOccupation == "08")
                                        {
                                            driver.FindElement(By.Id(FormHelper.CurrentOccupationSelect)).SendKeys("08");
                                        }
                                        else if (curOccupation != null && curOccupation == "30")
                                        {
                                            driver.FindElement(By.Id(FormHelper.CurrentOccupationSelect)).SendKeys("30");
                                        }
                                        else if (curOccupation != null && curOccupation == "33")
                                        {
                                            driver.FindElement(By.Id(FormHelper.CurrentOccupationSelect)).SendKeys("33");
                                        }
                                        else
                                        {
                                            driver.FindElement(By.Id(FormHelper.CurrentOccupationSelect))
                                            .SendKeys(curOccupation);
                                        }

                                        var curOccupationType = node.SelectSingleNode("CurrentOcupationType")?.InnerText;
                                        if (curOccupationType != null && curOccupationType == "PRA")
                                        {
                                            driver.FindElement(By.Id(FormHelper.CurrentOccupationAddressEmployerCheckbox))
                                            .Click();
                                        }
                                        else if (curOccupationType != null && curOccupationType == "UCZ")
                                        {
                                            driver.FindElement(By.Id(FormHelper.CurrentOccupationAddressSchoolCheckbox))
                                            .Click();
                                        }

                                        curOcupState.SendKeys(node.SelectSingleNode("CurrentOccupationState")?.InnerText);
                                        curOcupProvince.SendKeys(
                                            node.SelectSingleNode("CurrentOccupationProvince")?.InnerText);
                                        curOcupPlace.SendKeys(node.SelectSingleNode("CurrentOccupationPlace")?.InnerText);
                                        curOcupPostalCode.SendKeys(
                                            node.SelectSingleNode("CurrentOccupationPostalCode")?.InnerText);
                                        curOcupAddress.SendKeys(
                                            node.SelectSingleNode("CurrentOccupationAddress")?.InnerText);
                                        curOcupPhoneCode.SendKeys(
                                            node.SelectSingleNode("CurrentOccupationPhoneCode")?.InnerText);
                                        curOcupPhone.SendKeys(node.SelectSingleNode("CurrentOccupationPhone")?.InnerText);
                                        curOcupName.SendKeys(node.SelectSingleNode("CurrentOccupationName")?.InnerText);
                                        curOcupEmail.SendKeys(node.SelectSingleNode("CurrentOccupationEmail")?.InnerText);
                                        curOcupFaxCode.SendKeys(
                                            node.SelectSingleNode("CurrentOccupationFaxCode")?.InnerText);
                                        curOcupFax.SendKeys(node.SelectSingleNode("CurrentOccupationFax")?.InnerText);

                                        driver.FindElement(By.Id(FormHelper.MainPurposeTourismCheckbox)).Click();
                                        driver.FindElement(By.Id(FormHelper.MainPurposeCulturalCheckbox)).Click();
                                        driver.FindElement(By.Id(FormHelper.MainPurposeVisitToFamilyCheckbox)).Click();

                                        destinationCountry.SendKeys(
                                            node.SelectSingleNode("DestinationCountry")?.InnerText);
                                        firstEntry.SendKeys(node.SelectSingleNode("FirstEntryCountry")?.InnerText);

                                        var numberOfEnter = node.SelectSingleNode("NumberOfEntries")?.InnerText;
                                        if (numberOfEnter != null && numberOfEnter == "1")
                                        {
                                            driver.FindElement(By.Id(FormHelper.NumberOfEntriesSingleCheckbox)).Click();
                                        }
                                        else if (numberOfEnter != null && numberOfEnter == "2")
                                        {
                                            driver.FindElement(By.Id(FormHelper.NumberOfEntriesTwoCheckbox)).Click();
                                        }
                                        else if (numberOfEnter != null && numberOfEnter == "3")
                                        {
                                            driver.FindElement(By.Id(FormHelper.NumberOfEntriesMultiCheckbox)).Click();
                                        }

                                        duration.SendKeys(node.SelectSingleNode("Duration")?.InnerText);
                                        arrDate.SendKeys(node.SelectSingleNode("ArriveDate")?.InnerText);
                                        deparDate.SendKeys(node.SelectSingleNode("DepartureDate")?.InnerText);

                                        var otherShengen = node.SelectSingleNode("OtherShengenVisas")?.InnerText;
                                        if (otherShengen != null && otherShengen == "Yes")
                                        {
                                            driver.FindElement(By.Id(FormHelper.OtherShengenVisasCheckbox)).Click();
                                            driver.FindElement(By.Id(FormHelper.OtherShengenVisasFirstInInput))
                                            .SendKeys(node.SelectSingleNode("OtherShengenVisasFirstIn")?.InnerText);
                                            driver.FindElement(By.Id(FormHelper.OtherShengenVisasFirstOutInInput))
                                            .SendKeys(node.SelectSingleNode("OtherShengenVisasFirstOut")?.InnerText);
                                        }

                                        driver.FindElement(By.Id("cp_f_chkNiedotyczy28")).Click();

                                        var recPersonType = node.SelectSingleNode("ReceivingPersonType")?.InnerText;
                                        if (recPersonType != null && recPersonType == "1")
                                        {
                                            driver.FindElement(By.Id(FormHelper.ReceivingPersonFirmCheckbox)).Click();
                                            driver.FindElement(By.Id(FormHelper.ReceivingPersonName))
                                            .SendKeys(node.SelectSingleNode("ReceivingPersonName")?.InnerText);
                                        }
                                        else if (recPersonType != null && recPersonType == "2")
                                        {
                                            driver.FindElement(By.Id(FormHelper.ReceivingPersonLifeCheckbox)).Click();
                                            driver.FindElement(By.Id(FormHelper.ReceivingPersonFirstName))
                                            .SendKeys(node.SelectSingleNode("ReceivingPersonFirstName")?.InnerText);
                                            driver.FindElement(By.Id(FormHelper.ReceivingPersonLastName))
                                            .SendKeys(node.SelectSingleNode("ReceivingPersonLastName")?.InnerText);
                                        }

                                        recCountry.SendKeys(node.SelectSingleNode("ReceivingPersonCountry")?.InnerText);
                                        // todo: rewrite this
                                        driver.FindElement(By.Id(FormHelper.ReceivingPersonCity))
                                        .SendKeys(node.SelectSingleNode("ReceivingPersonCity")?.InnerText);
                                        driver.FindElement(By.Id(FormHelper.ReceivingPersonPostalCode))
                                        .SendKeys(node.SelectSingleNode("ReceivingPersonPostalCode")?.InnerText);
                                        driver.FindElement(By.Id(FormHelper.ReceivingPersonPhonePrefix))
                                        .SendKeys(node.SelectSingleNode("ReceivingPersonPhonePrefix")?.InnerText);
                                        driver.FindElement(By.Id(FormHelper.ReceivingPersonPhone))
                                        .SendKeys(node.SelectSingleNode("ReceivingPersonPhone")?.InnerText);
                                        driver.FindElement(By.Id(FormHelper.ReceivingPersonFaxPrefix))
                                        .SendKeys(node.SelectSingleNode("ReceivingPersonFaxPrefix")?.InnerText);
                                        driver.FindElement(By.Id(FormHelper.ReceivingPersonFax))
                                        .SendKeys(node.SelectSingleNode("ReceivingPersonFax")?.InnerText);
                                        driver.FindElement(By.Id(FormHelper.ReceivingPersonAddress))
                                        .SendKeys(node.SelectSingleNode("ReceivingPersonAddress")?.InnerText);
                                        driver.FindElement(By.Id(FormHelper.ReceivingPersonHouseNumber))
                                        .SendKeys(node.SelectSingleNode("ReceivingPersonHouseNumber")?.InnerText);
                                        driver.FindElement(By.Id(FormHelper.ReceivingPersonFlatNumber))
                                        .SendKeys(node.SelectSingleNode("ReceivingPersonFlatNumber")?.InnerText);
                                        driver.FindElement(By.Id(FormHelper.ReceivingPersonEmail))
                                        .SendKeys(node.SelectSingleNode("ReceivingPersonEmail")?.InnerText);

                                        driver.FindElement(By.Id(FormHelper.HowsPayCheckbox)).Click();
                                        driver.FindElement(By.Id(FormHelper.PayCash)).Click();
                                        driver.FindElement(By.Id(FormHelper.PayCard)).Click();
                                        driver.FindElement(By.Id(FormHelper.PayAcom)).Click();
                                        driver.FindElement(By.Id(FormHelper.EuDoesApplied)).Click();
                                        driver.FindElement(By.Id(FormHelper.IAgreeFirst)).Click();
                                        driver.FindElement(By.Id(FormHelper.IAgreeSecond)).Click();
                                        driver.FindElement(By.Id(FormHelper.IAgreeLast)).Click();
                                        Thread.Sleep(60000);
                                        driver.FindElement(By.Id("cp_f_cmdDalej")).Click();
                                        Thread.Sleep(60000);
                                        driver.FindElement(By.Id("cp_f_cmdZakoncz")).Click();
                                    }
                                }
                                Thread.Sleep(5000);
                                driver.FindElement(By.Id("cp_btnPobierz")).Click();
                                Thread.Sleep(20000);
                                driver.Quit();
                                IsDone = true;
                            }
                        }
                        else
                        {
                            _helper.Log(ConsoleColor.Red, "[ERROR] Capta code return error!");
                            IsDone = false;
                        }
                    }

                    #endregion
                }
                else
                {
                    _helper.Log(ConsoleColor.Cyan, "[ERROR] Cant find captha image!");
                    IsDone = false;
                }
            }
            catch (Exception ex)
            {
                _helper.Log(ConsoleColor.Red, "[ERROR {BROWSER}] " + ex.Message);
                IsDone = false;
            }
            return(IsDone);
        }
Esempio n. 16
0
 public AntiCaptchaOnlineApi()
 {
     _anticaptcha = new AntiCaptcha(GetApiKeyAnticaptcha());
 }
        /// <inheritdoc />
        public override void Process(BotData data)
        {
            if (!data.GlobalSettings.Captchas.BypassBalanceCheck)
            {
                base.Process(data);
            }

            var localUrl = ReplaceValues(url, data);

            data.Log(new LogEntry("Downloading image...", Colors.White));

            // Download captcha
            var captchaFile = string.Format("Captchas/captcha{0}.jpg", data.BotNumber);

            if (base64)
            {
                var bytes = Convert.FromBase64String(localUrl);
                using (var imageFile = new FileStream(captchaFile, FileMode.Create))
                {
                    imageFile.Write(bytes, 0, bytes.Length);
                    imageFile.Flush();
                }
            }
            else if (sendScreenshot && data.Screenshots.Count > 0)
            {
                Bitmap image = new Bitmap(data.Screenshots.Last());
                image.Save(captchaFile);
            }
            else
            {
                try
                {
                    DownloadRemoteImageFile(captchaFile, data, localUrl);
                }
                catch (Exception ex) { data.Log(new LogEntry(ex.Message, Colors.Tomato)); throw; }
            }

            string response = "";

            CaptchaServices.CaptchaService service = null;
            var bitmap = new Bitmap(captchaFile);

            try
            {
                switch (data.GlobalSettings.Captchas.CurrentService)
                {
                case CaptchaService.ImageTypers:
                    service = new ImageTyperz(data.GlobalSettings.Captchas.ImageTypToken, data.GlobalSettings.Captchas.Timeout);
                    break;

                case CaptchaService.AntiCaptcha:
                    service = new AntiCaptcha(data.GlobalSettings.Captchas.AntiCapToken, data.GlobalSettings.Captchas.Timeout);
                    break;

                case CaptchaService.DBC:
                    service = new DeathByCaptcha(data.GlobalSettings.Captchas.DBCUser, data.GlobalSettings.Captchas.DBCPass, data.GlobalSettings.Captchas.Timeout);
                    break;

                case CaptchaService.TwoCaptcha:
                    service = new TwoCaptcha(data.GlobalSettings.Captchas.TwoCapToken, data.GlobalSettings.Captchas.Timeout);
                    break;

                case CaptchaService.RuCaptcha:
                    service = new RuCaptcha(data.GlobalSettings.Captchas.RuCapToken, data.GlobalSettings.Captchas.Timeout);
                    break;

                case CaptchaService.DeCaptcher:
                    service = new DeCaptcher(data.GlobalSettings.Captchas.DCUser, data.GlobalSettings.Captchas.DCPass, data.GlobalSettings.Captchas.Timeout);
                    break;

                case CaptchaService.AZCaptcha:
                    service = new AZCaptcha(data.GlobalSettings.Captchas.AZCapToken, data.GlobalSettings.Captchas.Timeout);
                    break;

                case CaptchaService.CaptchasIO:
                    service = new CaptchasIO(data.GlobalSettings.Captchas.CIOToken, data.GlobalSettings.Captchas.Timeout);
                    break;

                default:
                    throw new Exception("This service cannot solve normal captchas!");
                }
                response = service.SolveCaptcha(bitmap);
            }
            catch (Exception ex) { data.Log(new LogEntry(ex.Message, Colors.Tomato)); throw; }
            finally { bitmap.Dispose(); }

            data.CaptchaService = service;
            data.Log(response == "" ? new LogEntry("Couldn't get a response from the service", Colors.Tomato) : new LogEntry("Succesfully got the response: " + response, Colors.GreenYellow));

            if (VariableName != "")
            {
                data.Log(new LogEntry("Response stored in variable: " + variableName, Colors.White));
                data.Variables.Set(new CVar(variableName, response));
            }
        }
Esempio n. 18
0
 public AntiCaptchaOnlineApi(IProgress <string> progressLog)
 {
     _anticaptcha = new AntiCaptcha(GetApiKeyAnticaptcha());
     _progressLog = progressLog;
 }
Esempio n. 19
0
        public static async Task <CaptchaStruct> GetNoCaptcha(string agKey)
        {
            return(await Task.Run(() =>
            {
                lock (Locker)
                {
                    try
                    {
                        var challenge = string.Empty;
                        while (true)
                        {
                            WebDriver = Utils.WebDriver;
                            try
                            {
                                if (!Utils.IsPermit)
                                {
                                    return new CaptchaStruct
                                    {
                                        Answer = "Error message: Stopped",
                                        Challenge = string.Empty,
                                        Date = DateTime.Now
                                    };
                                }

                                WebDriver.Navigate()
                                .GoToUrl("https://www.quora.com/");

                                WebDriver.FindElement(By.XPath("//a[@class='signup_email_link']")).Click();

                                new WebDriverWait(WebDriver, TimeSpan.FromSeconds(60)).Until(
                                    driver =>
                                    ExpectedConditions.FrameToBeAvailableAndSwitchToIt(
                                        By.XPath("//iframe[@title='виджет reCAPTCHA']")));

                                WebDriver.SwitchTo()
                                .Frame(WebDriver.FindElement(By.XPath("//iframe[@title='виджет reCAPTCHA']")));

                                new WebDriverWait(WebDriver, TimeSpan.FromSeconds(60)).Until(
                                    driver =>
                                    ExpectedConditions.ElementToBeClickable(
                                        By.XPath("//div[@class='recaptcha-checkbox-checkmark']")));
                                WebDriver.FindElement(By.XPath("//div[@class='recaptcha-checkbox-checkmark']")).Click();

                                WebDriver.SwitchTo().DefaultContent();

                                var cap = new AntiCaptcha(agKey)
                                {
                                    CheckDelay = 2000,
                                    ServiceProvider =
                                        Utils.AntigateService == "rucaptcha.com"
                                            ? "rucaptcha.com"
                                            : "antigate.com"
                                };
                                cap.Parameters.Set("id_constructor", "23");

                                Task.Delay(3000).Wait();

                                new WebDriverWait(WebDriver, TimeSpan.FromSeconds(60)).Until(
                                    driver =>
                                    ExpectedConditions.FrameToBeAvailableAndSwitchToIt(
                                        By.XPath("//iframe[@title='проверка recaptcha']")));
                                WebDriver.SwitchTo()
                                .Frame(WebDriver.FindElement(By.XPath("//iframe[@title='проверка recaptcha']")));

                                var imageSelectors =
                                    new WebDriverWait(WebDriver, TimeSpan.FromSeconds(15)).Until(
                                        driver => driver.FindElements(By.XPath("//div[@class='rc-image-tile-wrapper']")));

                                if (imageSelectors.Count != 9)
                                {
                                    throw new Exception();
                                }


                                imageSelectors[2].Click();
                                imageSelectors[4].Click();
                                imageSelectors[7].Click();
                                WebDriver.FindElement(By.Id("recaptcha-verify-button")).Click();
                                Task.Delay(1000).Wait();

                                while (true)
                                {
                                    if (!Utils.IsPermit)
                                    {
                                        return new CaptchaStruct
                                        {
                                            Answer = "Error message: Stopped",
                                            Challenge = string.Empty,
                                            Date = DateTime.Now
                                        };
                                    }

                                    var img = GetCaptchaImg(WebDriver).Result;

                                    if (img.First().Value == null)
                                    {
                                        break;
                                    }

                                    cap.Parameters.Set("textinstructions", img.First().Key);
                                    var answ = cap.GetAnswer(img.First().Value);

                                    if (string.IsNullOrEmpty(answ))
                                    {
                                        img.First().Value.Save("filename.png", ImageFormat.Png);
                                        continue;
                                    }

                                    var picNums = Regex.Matches(answ, @"\d");
                                    imageSelectors =
                                        WebDriver.FindElements(By.XPath("//div[@class='rc-image-tile-wrapper']"));

                                    try
                                    {
                                        foreach (var z in from object x in picNums select int.Parse(x.ToString()) - 1)
                                        {
                                            imageSelectors[z].Click();
                                        }
                                    }
                                    catch (Exception)
                                    {
                                        challenge = WebDriverQueue.FindElement(By.Id("recaptcha-token"))
                                                    .GetAttribute("value");
                                        break;
                                    }

                                    WebDriver.FindElement(By.Id("recaptcha-verify-button")).Click();
                                    Task.Delay(2000).Wait();

                                    var incorrect =
                                        WebDriver.FindElement(
                                            By.XPath("//div[@class='rc-imageselect-incorrect-response']"))
                                        .Text;
                                    var more =
                                        WebDriver.FindElement(
                                            By.XPath("//div[@class='rc-imageselect-error-select-more']"))
                                        .Text;
                                    var one =
                                        WebDriver.FindElement(By.XPath("//div[@class='rc-imageselect-error-select-one']"))
                                        .Text;

                                    if (incorrect == "" && more == "" && one == "")
                                    {
                                        challenge = WebDriver.FindElement(By.Id("recaptcha-token"))
                                                    .GetAttribute("value");
                                        break;
                                    }
                                    //cap.FalseCaptcha();

                                    if (one != "" || more != "")
                                    {
                                        break;
                                    }
                                }

                                if (string.IsNullOrEmpty(challenge))
                                {
                                    continue;
                                }
                                break;
                            }
                            catch (Exception ex)
                            {
                                throw new Exception(ex.Message);
                            }
                        }
                        return new CaptchaStruct {
                            Answer = string.Empty, Challenge = challenge, Date = DateTime.Now
                        };
                    }
                    catch (Exception ex)
                    {
                        return new CaptchaStruct {
                            Answer = $"Error message: {ex.Message}", Challenge = ""
                        };
                    }
                }
            }));
        }
Esempio n. 20
0
 public ResolveCaptcha()
 {
     AntiCaptcha = new AntiCaptcha(APIKEY);
 }
Esempio n. 21
0
        public static string SendCaptcha(string captcha_img)
        {
            var anticap = new AntiCaptcha("3e9d563d32f126b9fbda5e385a60a4c6");

            anticap.CheckDelay = 10000;
            anticap.CheckRetryCount = 20;
            anticap.SlotRetry = 5;
            anticap.SlotRetryDelay = 800;

            // дополнительные API параметры (см: http://antigate.com/panel.php?action=api)
            anticap.Parameters.Set("min_len", "2");
            anticap.Parameters.Set("max_len", "10");

            byte[] img;
            using (var web = new WebClient())
            {
                img = web.DownloadData(captcha_img);
            }

            try
            {
                // отправляем файл и ждем ответа
                string answer = anticap.GetAnswer(img);
                return answer;
            }
            catch (AntigateErrorException aee)
            {
                // Antigate ответил одной из документированных в API ошибкой
                return null;
            }
            catch (Exception ex)
            {
                // возникло исключение
                return null;
            }
        }
Esempio n. 22
0
        private static async Task <string> GetCaptchaResult(ISearchContext webDriver, string agKey)
        {
            try
            {
                byte[]      mainImgBytes;
                IWebElement type;

                var cap = new AntiCaptcha(agKey)
                {
                    CheckDelay     = 2000,
                    SlotRetry      = 0,
                    SlotRetryDelay = 0
                };
                cap.Parameters.Set("recaptcha", "1");

                try
                {
                    type         = webDriver.FindElement(By.XPath("//img[@class='rc-image-tile-33']"));
                    mainImgBytes = await GetMainImg(type.GetAttribute("src") /*, false*/);
                }
                catch (Exception)
                {
                    try
                    {
                        type         = webDriver.FindElement(By.XPath("//img[@class='rc-image-tile-42']"));
                        mainImgBytes = await GetMainImg(type.GetAttribute("src") /*, true*/);
                    }
                    catch (Exception)
                    {
                        type         = webDriver.FindElement(By.XPath("//img[@class='rc-image-tile-44']"));
                        mainImgBytes = await GetMainImg(type.GetAttribute("src") /*, true*/);
                    }
                }

                if (mainImgBytes == null)
                {
                    throw new Exception("Image file size too big");
                }

                if (!IsElementPresent(By.XPath("//div[@class='rc-imageselect-desc-no-canonical']"), webDriver))
                {
                    //Text instructions
                    var descPlain =
                        webDriver.FindElement(
                            By.XPath("//div[@class='rc-imageselect-desc']")).GetAttribute("innerHTML");
                    cap.Parameters.Set("textinstructions", Regex.Match(descPlain, @"(?<=<strong>).+(?=</strong>)").Value);

                    //Candidate image Base64
                    var candidateSrcBase64 =
                        webDriver.FindElement(By.Id("rc-imageselect-candidate"))
                        .FindElement(By.TagName("img"))
                        .GetAttribute("src");
                    cap.Parameters.Set("imginstructions",
                                       candidateSrcBase64.Replace("data:image/jpeg;base64,", string.Empty));
                }
                else
                {
                    //Text instructions
                    var descPlain =
                        webDriver.FindElement(
                            By.XPath("//div[@class='rc-imageselect-desc-no-canonical']")).GetAttribute("innerHTML");
                    cap.Parameters.Set("textinstructions", Regex.Match(descPlain, @"(?<=<strong>).+(?=</strong>)").Value);
                }

                var res = await cap.GetAnswer(mainImgBytes, Utils.CancelToken.Token);

                if (string.IsNullOrEmpty(res))
                {
                    cap.FalseCaptcha();
                }

                return(res);
            }
            catch (Exception ex)
            {
                if (ex.Message.Contains("no such element"))
                {
                    throw new Exception("Wrong captcha type");
                }
                throw new Exception(ex.Message);
            }
        }