Периодически зависает экшен Активировать расширение. Как в таком случае прекратить выполнение шаблона.

xopek2007

Client
Регистрация
10.05.2013
Сообщения
102
Благодарностей
11
Баллы
18
При активации расширения CapMonster Cloud EXTENSION шаблон периодически зависает.
Таймаут не помогает. Как прервать работу шаба?
 

xopek2007

Client
Регистрация
10.05.2013
Сообщения
102
Благодарностей
11
Баллы
18
Пробовал установку кубиками:
hcap.PNG
И на C#:
C#:
string extPath = @"C:\zen\CapMonster Cloud — automated captcha solver 1.11.12.0.crx"; // Расширение .crx CapMonsterCloud
string apiKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // Апи ключ CapMonsterCloud
int attempCnt = 3; // Количество попыток разгадать каптчу от 0 до 9

// Устанавливаем расширение
instance.InstallCrxExtension(extPath);

// Активируем установленное расширение
_ = instance.GetExtensionById("pabjfbciaedomjjfelfafejkppknjleh").Activate();

// Проверка на автивацию расширения
_ = !instance.IsExtensionWorking ? throw new Exception("Не удается активировать расширение CapMonsterCloud !") : true;

// Объявим упрощенное обращение к активированному расширению
Tab ext = instance.ActiveExtension;

// Вводим Api ключ CapMonsterCloud в расширение
ext.FindElementByXPath("//input[@type='text']", 0).SetValue(apiKey.Trim(), "Full");

// Дождемся с прокликом, пока станет активной иконка сохранения Api ключа
while (true)
{
    HtmlElement saveIcon = ext.FindElementByXPath("//span[@class='anticon']/*[@fill='#46B982']", 0);
    if(!saveIcon.IsNull && !saveIcon.IsVoid)
    {
        saveIcon.Click();
        break;
    }
}

// Ожидаем прогрузку баланса
string balance = "";
var timer = System.Diagnostics.Stopwatch.StartNew();
while (true)
{
    try
     {
      
        if (timer.ElapsedMilliseconds > 10000)     throw new Exception("Не удалось соединиться с сервером CapMonsterCloud в течении 10 секунд !");
  
        balance = ext.FindElementByXPath("//span[starts-with(@class, 'ant-typography')]", 3).InnerText;
        if (balance.Contains("$")) break;
        else if (balance.Contains("Неверный ключ")) throw new Exception("Неверный Api ключ CapMonsterCloud !");
      
     }
     finally { timer.Stop(); } 
}
  
// Проверим на низкий баланс
double buy = double.Parse(new string(balance.Where(x => char.IsDigit(x) || x == '.').ToArray()), System.Globalization.CultureInfo.InvariantCulture);
if (buy < 0.05) throw new Exception($"Слишком маленький баланс CapMonsterCloud: {buy}$ !");

// Выбираем кол-во повторных решений, в случае ошибки распознавания
if (0 < attempCnt && attempCnt < 10)
{
    ext.FindElementByXPath("//span[@class='ant-select-selection-item']", 0).Click();
    ext.FindElementByXPath("//*[@class='ant-select-item-option-content']", attempCnt).Click();
}

// Выбираем токен как вариант решения hcaptcha
HtmlElement he = instance.ActiveExtension.FindElementByAttribute("span", "innertext", "Token", "regexp", 1);
if (he.IsVoid) return -1;

// Задержка эмуляции
instance.WaitFieldEmulationDelay();
// Вызвать событие "click"
he.RiseEvent("click", instance.EmulationLevel);

// Клик по кнопке Закрыть
HtmlElement helem = instance.ActiveExtension.GetDocumentByAddress("0").FindElementByAttribute("button", "class", "ant-btn\\ ant-btn-text\\ sc-1om12l0\\ lnoqzy", "regexp", 0);
if (helem.IsVoid) return -1;

// Задержка эмуляции
instance.WaitFieldEmulationDelay();
// Вызвать событие "click"
helem.RiseEvent("click", instance.EmulationLevel);

// Убираем расширение с экрана
instance.ActiveTab.FindElementByXPath("/html", 0).Click();
И все равно зависают. Причем наглухо. Кнопкой "Прервать" не останавливаются.
Может кто посоветует как решить эту проблему.
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63

xopek2007

Client
Регистрация
10.05.2013
Сообщения
102
Благодарностей
11
Баллы
18
А как узнать на какой?
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63
выводи в лог сообщение, после каждой команды. так и у знаешь что виснет.
 

xopek2007

Client
Регистрация
10.05.2013
Сообщения
102
Благодарностей
11
Баллы
18
На строке
Активируем установленное расширение
 

xopek2007

Client
Регистрация
10.05.2013
Сообщения
102
Благодарностей
11
Баллы
18
Это походу баг какой-то. Удаление проекта не снимает зависшие потоки. Только перезагрузка ЗП.
 

vierasen

Client
Регистрация
10.12.2015
Сообщения
582
Благодарностей
277
Баллы
63
Такая же проблема, зависает и висит долго, иногда навсегда...
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)