Не сбрасывать состояние браузера при дебаге и добавить пользовательскую генерацию кода

esp094

Client
Регистрация
07.09.2017
Сообщения
34
Благодарностей
6
Баллы
8
У меня два предложения:

1) При дебаге проекта в CodeCreator опционально не сбрасывать состояние браузера. Тогда мы могли бы приостанавливать выполнение проекта при возникновении новых страниц или условий, вносить правки и запускать проект заново на выполнение - и продолжать с того места где мы остановились. Конечно для этого нужны методы распознавания страницы, но их нетрудно реализовать, у меня например уже реализованы. Это помогло бы сэкономить уйму времени, так как на сложных проектах большую часть времени я сижу и жду когда программа заново залогинится и дойдет до страницы с ошибкой.

2)Добавить в ниспадающее меню дебажного браузера (то в котором Inspect Element, Follow The Cursor итд) возможность вставки пользовательских пунктов меню по редактированию кода/ Добавить в сам браузер возможность использовать плагины ff или chrome + devtools. Тогда вместо использования записи действий, которое генерирует монструозный нечитаемый код мы могли бы обходиться своими наработками.

К примеру, вот как выглядит клик на кнопку "Найти" гугла в генераторе:
C#:
            // Click on "Пошук Google"
            HtmlElement he = instance.GetTabByAddress("page").GetDocumentByAddress("0").FindElementByTag("form", 0).FindChildByName("btnK");
            if (he.IsVoid) {
                he = instance.GetTabByAddress("page").GetDocumentByAddress("0").FindElementByTag("form", 0).FindChildByAttribute("input:submit", "class", "gNO89b", "regexp", 1);
            }
            if (he.IsVoid) {
                he = instance.GetTabByAddress("page").GetDocumentByAddress("0").FindElementByTag("form", 0).FindChildByAttribute("input:submit", "fulltag", "input:submit", "text", 2);
            }
            if (he.IsVoid) return -1;

            // Emulation delay
            instance.WaitFieldEmulationDelay();
            // Call the event "click"
            he.RiseEvent("click", instance.EmulationLevel);
А вот как у меня:

C#:
filler.Click("//input[@name='btnK']", 0);
В пользовательском методе Click уже реализован и поиск элемента, и сам клик, и ожидание. Код становится понятным и читаемым. И этот пользовательский метод сгенерирован моим собственным генератором - в виде плагина к браузеру.


Я интересовался около полутора лет назад смогут ли реализовать мои хотелки, и какая цена вопроса. Мне сказали что это возможно, но после этого перестали отвечать на тикеты. Я интересовался месяц назад в личной переписке содним из админов форума - тот тоже сказал что мол, узнает, и тоже после этого пропал и перестал отвечать на сообщения.

Пришло время продлевать лицензию, и мне хочется определенности - можно ли это реализовать в Zenno в ближайшее время, или мне надо будет искать другие продукты для ускорения работы?
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 369
Благодарностей
3 294
Баллы
113
1) При дебаге проекта в CodeCreator опционально не сбрасывать состояние браузера.
Производите отладку в сторонней IDE с Edit & Continue - VS, Rider.
Тогда вместо использования записи действий, которое генерирует монструозный нечитаемый код мы могли бы обходиться своими наработками.
Навряд ли написанием своих плагинов Chrome или FF, занимается значимый процент пользователей постера.
 

esp094

Client
Регистрация
07.09.2017
Сообщения
34
Благодарностей
6
Баллы
8
Производите отладку в сторонней IDE с Edit & Continue - VS, Rider.
Подскажите каким способом можно быстро конвертировать zpproj в формат этих IDE и обратно? Несколько дней назал читал в одной из тем на форуме что для этого придется копировать код руками.

Навряд ли написанием своих плагинов Chrome или FF, занимается значимый процент пользователей постера.
Я понимаю что большинство пользователей использует кубики в Project Maker. Тем не менее, может мы могли бы сойтись на какой то сумме чтобы эти нововведения появились в следующем обновлении.
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 369
Благодарностей
3 294
Баллы
113
Подскажите каким способом можно быстро конвертировать zpproj в формат этих IDE и обратно? Несколько дней назал читал в одной из тем на форуме что для этого придется копировать код руками.
В CodeCreator'е использовать "Экспортировать проект".
Формат будет старый, но рабочий. Если интересен новый: ZennoPoster-project-template
Так же, после экспорта, будут доступны последние версии языка и .net в сторонних IDE.
 

esp094

Client
Регистрация
07.09.2017
Сообщения
34
Благодарностей
6
Баллы
8
А как этот проект экспортированный потом скормить зеннопостеру в боевом режиме?
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 369
Благодарностей
3 294
Баллы
113
А как этот проект экспортированный потом скормить зеннопостеру в боевом режиме?
Там же есть кнопка "Упаковать проект". Можно сразу указать скомпилированную dll.
 

esp094

Client
Регистрация
07.09.2017
Сообщения
34
Благодарностей
6
Баллы
8
Попробовал экспортировать проект, открываю в VS, при запуске пишет
Error CS0246 The type or namespace name 'ZennoLab' could not be found (are you missing a using directive or an assembly reference?)
Три дллки ZennoLab передобавил вручную, не помогло.
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 369
Благодарностей
3 294
Баллы
113
Error CS0246 The type or namespace name 'ZennoLab' could not be found (are you missing a using directive or an assembly reference?)
Три дллки ZennoLab передобавил вручную, не помогло.
Их не надо добавлять, в csproj необходимо лишь поправить путь к ним вручную (так обычно проще).
я использую путь через ZennoPosterCurrentPath, так удобнее:
Capture.PNG
 

esp094

Client
Регистрация
07.09.2017
Сообщения
34
Благодарностей
6
Баллы
8
Программа запустилась, однако не успевает выполнить ни одной строки из метода ExecuteCode, а выводит окно "Instance's debug Failed" и закрывается. При этом у меня были запущены сперва CodeCreator затем ProjectMaker. Не могли бы Вы скинуть пример настроенного солюшена который бы работал у Вас?
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 369
Благодарностей
3 294
Баллы
113

esp094

Client
Регистрация
07.09.2017
Сообщения
34
Благодарностей
6
Баллы
8
Ваш шаблон я тоже пробовал, при старте VS выдает "A project with an output type of Class Library cannot be started directly". Как правильно запускать такой проект?
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 369
Благодарностей
3 294
Баллы
113
Как правильно запускать такой проект?
Так же как и проект зенки:
Путь к exe путь\Progs\ZennoLab.CodeRunner.exe
Параметры командной строки: 50606 "путь к полученной dll проекта" external -sp "C:/Users/Admin/AppData/Roaming/ZennoLab/ZennoPoster/5"

В чём необходимость использование CodeCreator'а?
 

esp094

Client
Регистрация
07.09.2017
Сообщения
34
Благодарностей
6
Баллы
8
Видимо ни в чем, я считал ранее что программа сама найдет запущеный инстанс браузера креатора и будет работать с ним (как в некоторых сторонних продуктах).
А какой должна быть Working directory? Я поставил папку с проектом, и VS (как и в случае с экспортированным проектом) выдает "Instance's debug Failed".
 

esp094

Client
Регистрация
07.09.2017
Сообщения
34
Благодарностей
6
Баллы
8
Если при этом открыт Code Creator то он напишет в логе
Internal error: Start debugging from external code Object reference not set to an instance of an object.
 

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