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

xopek2007

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

xopek2007

Client
Регистрация
10.05.2013
Сообщения
101
Благодарностей
8
Баллы
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
Регистрация
11.11.2020
Сообщения
858
Благодарностей
348
Баллы
63

xopek2007

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

Ахилес

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

xopek2007

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

xopek2007

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

vierasen

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

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