Обрыв работы шаблона. Как реализовать?

justanotherVar

Пользователь
Регистрация
18.09.2016
Сообщения
66
Благодарностей
2
Баллы
8
Возможно вопрос, конечно простой, но все же.
Если в вебе находим какой либо элемент на странице, то данный поток надо "грохнуть".
Каким образом это сделать?
Tab.Close();? Но схлопнет ли это сам поток?
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 107
Баллы
113
Что значит "грохнуть"?
Если имеете ввиду завершить поток по успеху/неуспеху, то можно через экшен If. Хотя в данном случае и его, вроде, даже не надо, если стрелки дальше нет, поток и так завершится.
 

kagorec

Client
Регистрация
24.08.2013
Сообщения
929
Благодарностей
481
Баллы
63
Казалось бы 3-ий час ночи, неудивительно что такой вопрос появился.
Вам правильно посоветовали, добавьте на нужном этапе проверку наличия элемента веб страницы из html, если нашло то завершаем.
 

tka4enko.ilya

Client
Регистрация
20.10.2015
Сообщения
61
Благодарностей
9
Баллы
8
Возможно вопрос, конечно простой, но все же.
Если в вебе находим какой либо элемент на странице, то данный поток надо "грохнуть".
Каким образом это сделать?
Tab.Close();? Но схлопнет ли это сам поток?
return null;
я так выхожу. + оповещение
 

justanotherVar

Пользователь
Регистрация
18.09.2016
Сообщения
66
Благодарностей
2
Баллы
8
Что значит "грохнуть"?
Если имеете ввиду завершить поток по успеху/неуспеху, то можно через экшен If. Хотя в данном случае и его, вроде, даже не надо, если стрелки дальше нет, поток и так завершится.
return null;
я так выхожу. + оповещение
Шаблон состоит из функций. И ретурн тут не поможет. Если шаблон не находит какой либо элемент на странице он вышибает с ошибкой, а нужно чтобы в лог написать и он завершился.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 107
Баллы
113
А throw new Exception("Ничего не найдено!"); тоже не подходит?
 

tka4enko.ilya

Client
Регистрация
20.10.2015
Сообщения
61
Благодарностей
9
Баллы
8
Шаблон состоит из функций. И ретурн тут не поможет. Если шаблон не находит какой либо элемент на странице он вышибает с ошибкой, а нужно чтобы в лог написать и он завершился.
да. нормально ретурн справляется. оповещение же кидать можно

главное в коде определить что нет нудного тебе элемента. и потом выйти с оповещением

как то так
Код:
Random rnd = new Random();

bool click_ok = false;
for (int i=0;i<30;i++)
{
    HtmlElement icon = instance.ActiveTab.FindElementByAttribute("img","class",@"qwerqwer","regexp",1);
    if (!icon.IsVoid)
    {
        System.Threading.Thread.Sleep(rnd.Next(750,1250));
        icon .RiseEvent("click","full");
        click_ok = true;
        System.Threading.Thread.Sleep(rnd.Next(750,1250));
        break;
    }
    else
    {
        System.Threading.Thread.Sleep(rnd.Next(750,1250));
    }
}

if (!click_ok)
{
    project.Variables["sError"].Value = "error: Блок проверки фото. Не удалось найти иконку";
    return null;
}
В логе ZP все отображается
 

Вложения

justanotherVar

Пользователь
Регистрация
18.09.2016
Сообщения
66
Благодарностей
2
Баллы
8
да. нормально ретурн справляется. оповещение же кидать можно

главное в коде определить что нет нудного тебе элемента. и потом выйти с оповещением

как то так
Код:
Random rnd = new Random();

bool click_ok = false;
for (int i=0;i<30;i++)
{
    HtmlElement icon = instance.ActiveTab.FindElementByAttribute("img","class",@"qwerqwer","regexp",1);
    if (!icon.IsVoid)
    {
        System.Threading.Thread.Sleep(rnd.Next(750,1250));
        icon .RiseEvent("click","full");
        click_ok = true;
        System.Threading.Thread.Sleep(rnd.Next(750,1250));
        break;
    }
    else
    {
        System.Threading.Thread.Sleep(rnd.Next(750,1250));
    }
}

if (!click_ok)
{
    project.Variables["sError"].Value = "error: Блок проверки фото. Не удалось найти иконку";
    return null;
}
В логе ZP все отображается
Большое спасибо.
 

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