Ошибки в логе | TermiDroid
Войти или зарегистрироваться
Ошибки в логе
Тема в разделе «Разбор ошибок», создана пользователем SlimperMan, 9 июн 2018.
-
SlimperMan
New MemberПрошу объяснить причину появляющихся ошибок и действия, которые необходимо предпринять при их появлении:
1. Выполнение действия WebBrowserTabManagement Ошибка обращения к Instance.GetTabByAddress
2. Выполнение действия WebBrowserSettings Ошибка обращения к Instance.SetProxy
3. Выполнение действия WebBrowserTab Ошибка обращения к Instance.ActiveTab
4. Выполнение действия Emulation Ошибка обращения к Instance.SendText
Ответить в теме
Показать игнорируемое содержимое
Поделиться этой страницей
- Ваше имя или e-mail:
- У Вас уже есть учётная запись?
-
- Нет, зарегистрироваться сейчас.
- Да, мой пароль:
-
Забыли пароль?
-
Запомнить меня
Поиск
-
- Искать только в заголовках
- Сообщения пользователя:
-
Имена участников (разделяйте запятой).
- Новее чем:
-
- Искать только в этой теме
- Искать только в этом разделе
- Отображать результаты в виде тем
-
Быстрый поиск
- Последние сообщения
Больше…
This topic has been deleted. Only users with topic management privileges can see it.
Здраствуйте, реально ли совершать клик по объекту зная его class и его порядковый номер (если не один)
попробуй как здесь http://wiki.bablosoft.com/doku.php?id=ru:tutorial2
только вместо парсить,
узнай css, удали лишнее, и кликай
@No именно так все и устроенно! Порядок такой — нажимаем на нужный объект левой кнопкой мыши — выбираем — двигать мышь и кликнуть на элемент — и выбираешь match (существует три вида клика — по css — по тексту match — b по координатам
@Turutur Ну match я видел. Только вот не будет работать если кнопок три и мне нужно кликнуть на вторую, а скрипт кликнет только на первую.
Получается нужен более продвинутый конструктор?
Например на с# этот клик я могу сделать этим кодом
HtmlElement he = instance.ActiveTab.GetDocumentByAddress(«0»).FindElementByTag(«form», 1).FindChildByAttribute(«span», «class», «b-combo__arrow», «text», 0);
if (he.IsVoid) return -1;
Можно ли этот код внедрить в BAS ?
Ну мой главный вопрос: Реально ли подобный код перенести в BAS ?
HtmlElement he = instance.ActiveTab.GetDocumentByAddress(«0»).FindElementByTag(«form», 1).FindChildByAttribute(«span», «innertext», «Переводы», «regexp», 0);
if (he.IsVoid) return -1;
Если нельзя. Можно ли как сделать чтобы объект для клика искался по «innertext» или «innerhtml» ?
@No человек — да ты продвинутый юзер — не пугай меня кодом — не мой уровень — где то видел выполнить код — Жди поддержку @support — или может еще кто шарит. Извиняй — не смог помочь. Если тема не палевая — запости пожалйста скрин и пример — может пригодится — я не встречал проблем с кликом по элементам….
Ну я знаю лишь азы С#, и код этот я беру с другого софта на подобии BAS.
Вот я и привык там кликать только по элементам (там по CSS кликать вроде бы и нельзя)и мне кажется что так удобней работать.
Например софт который кликает по значению «innertext» ,по идеи, должен быть рабочим дольше чем клики по css
@No это дело — привычки — я сам слез с «зенки» — BAS больше нравиться — хотя еще в стадии разработки и да некоторые элементы реализованы » не так» — после использования «другого софта» — просто нужно смириться и понять здешний алгоримт)
@No
Здраствуйте, реально ли совершать клик по объекту зная его class и его порядковый номер (если не один)
Здравствуйте, да реально, для этого после селектора нужно поставить номер в треугольных скобках. Допускается использование переменных.
Например, 3 ссылка a<2>
или сслыка в цикле a<[[CYCLE_INDEX]]>
@No
HtmlElement he = instance.ActiveTab.GetDocumentByAddress(«0»).FindElementByTag(«form», 1).FindChildByAttribute(«span», «class», «b-combo__arrow», «text», 0);
В БАС это будет так
page().all("form").at(0).css("span.b-combo__arrow").text()!
[[RESULT_TEXT]] = _result()
Нужно вставлять в действие выполнить код
@No
По innerHTML можно кликать так, как показал @Turutur http://community.bablosoft.com/post/2265
В будущем также планируется конструктор запросов, вроде конструктора для логических выражений, которые есть сейчас.
«По innerHTML можно кликать так, как показал @Turutur http://community.bablosoft.com/post/2265»
@support можете, пожалуйста, привести?
@No Ну берете весь код элемента или кусок кода, вставляете в поле, выбираете match вместо css, как показано на картинке. И происходит поиск по innerHTML
@support said in Как кликать по HTML а не CSS:
вроде конструктора для логических выражений, которые есть сейчас
@support — пожалуйста сделайте возможность в конструкторе регулярок — сразу переходить на страницу теста.
зачем: допустим — делал регулярку общую к каким то данным с разных страниц — то есть универсальную — например регулярка которая вытаскивает прокси и порты, ссылки и так далее — она сохранена в файл — и чтобы не тратить время на создание регулярки через констрктор при тесте — сразу проверить работает ли сохраненная регулярка или полученная с другого источника
@Turutur Таких сервисов полно. Например, https://regex101.com/
@support например у меня есть такой код
<span class=»b-combo__item-inner» dbid=»46″ dbprid=»3″ style=»cursor:pointer»>Автомобили</span>
Можно ли кликнуть используя только эту часть, ибо всё остальное не постоянное. (Не получается так)
style=»cursor:pointer»>Автомобили</span>
@No Можно сайт, я бы попробовал.
@support Я думаю только вы сможете разобраться в этой ситуации)
Есть страница https://www.fl.ru/projects/ Тут нужно выбрать с выпадающего списка 2 категории, не важно какие, ну пускай это будет «Тексты: Статьи»
Можно конечно по простому сделать
Но тогда нельзя будет просто перестроить скрипт например на» Разработка игр: 3D Моделирование» А вот если бы клики происходили по innerHTML, то тогда было бы лишь достаточно изменить данные в переменной и скрипт бы кликал по нужным категориям.
Как подсказал @Canine , можно сделать клик указав просто текст без кода.
Но тогда вторую подкатегорию выбрать не получиться.
Что можете посоветовать?
@No А если просто через ввод написать то что нужно оно вроде выбирает
0_1475782625517_тест ввод.xml
-
Саня
- Сообщения: 1
- Зарегистрирован: 01 апр 2020, 07:08
Не получается запустить C#
работаю с Демо не получается запустить C# в таком виде
var elementTools = instance.ActiveTab.FindElementByAttribute(«strong», «innertext», «Мой профиль», «regexp», 0);
if (!elementTools.IsVoid)
{
instance.WaitFieldEmulationDelay();
elementTools.RiseEvent(«click», instance.EmulationLevel);
instance.ActiveTab.WaitDownloading();
return «»;
}
Это кот я взял из другой программы Там он работает а здесь у меня не получается что я делаю не так
-
Support
- Site Admin
- Сообщения: 996
- Зарегистрирован: 10 апр 2009, 17:45
- Контактная информация:
Re: Не получается запустить C#
Сообщение
Support » 01 апр 2020, 13:47
Нет необходимых библиотек для работы этого кода.
Подключите XHE.dll к проекту через Visual Studio и пишите скрипт там, если эта программа предоставляет такие библиотеки.
А вообще этот код легко переписывается через наш фреймворк.
-
Oleg1987
- Сообщения: 4
- Зарегистрирован: 21 фев 2020, 18:15
Re: Не получается запустить C#
Сообщение
Oleg1987 » 07 апр 2020, 23:37
Так это api зеннопостера. С чего оно должно работать в human?
0 / 0 / 0
Регистрация: 28.09.2016
Сообщений: 2
1
Нажатие на кнопки и сбор данных
17.10.2017, 04:02. Показов 923. Ответов 0
Доброго времени суток. Пытаюсь сделать сбор данных. При нажатии на кнопку выходит окно со статистикой, откуда надо парсить. Я сделал нажатие на первую кнопку сайта, а их там много и постоянно меняются. Переход нужно осуществлять по всем кнопкам (думаю нужно собрать их число) каждые 15 минут по циклу.
Думаю это можно сделать используя Списки, но не знаю как объединить конструкции Xpath и List.
Заранее спасибо.
Нажатие кнопки
C# | ||
|
C# | ||
|
Добавлено через 6 часов 40 минут
Вопрос решен
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
-
#1
Выдает вот такую ошибку как на скрине1
-
22,7 КБ
Просмотры: 15 -
21 КБ
Просмотры: 12 -
21,9 КБ
Просмотры: 10 -
23,2 КБ
Просмотры: 10 -
9,2 КБ
Просмотры: 10
-
#2
У меня такое выдает, когда сильно загружен ноутбук
-
#3
походу с скоростью интернета что- то, не смог открыть окно, или глюк, или комп сильно загружен оперативка на пределе и не открыло окно инстанса
-
#4
походу с скоростью интернета что- то, не смог открыть окно, или глюк, или комп сильно загружен оперативка на пределе и не открыло окно инстанса
не это исключено, оперативы 6г, инет тоже норм
-
#5
не это исключено, оперативы 6г, инет тоже норм
в один поток работает
-
#6
не это исключено, оперативы 6г, инет тоже норм
написано же глюк, там описаны все возможные причины при появлении этой ошибки
-
#7
да хоть в 10 глюк зенобокса бывает и не то еще возможно
-
#8
уж слишком часто он бывает
-
#9
не это исключено, оперативы 6г, инет тоже норм
у меня тоже оперативка на 6гб, проводной скоростной инет, и тем не менее часто была эта ошибка, когда пользовалась последней версией зеннобокса. Переустановила на v5.7.5.3 — теперь все ок.
-
#10
у меня тоже оперативка на 6гб, проводной скоростной инет, и тем не менее часто была эта ошибка, когда пользовалась последней версией зеннобокса. Переустановила на v5.7.5.3 — теперь все ок.
сейчас попробую
-
#11
Тоже часто и густо такая ошибка была, работала стабильней всех 5.7.1.0. После нее каждое обновление было с такой ошибкой, приходилось откатываться на 5.7.1.0. Ошибка эта была на 3г модеме когда работал. Сейчас не пойму почему, но ошибки эти бывают крайне редко, версия 5.8.7.0. На ПК вчера проскочила разок, пока полет нормальный. Полтергейст может? (what)
Пользуйтесь нашим приложением
Мы используем файлы cookie. Пользуясь сайтом, вы принимаете условия нашего соглашения. Принять Детальнее
This topic has been deleted. Only users with topic management privileges can see it.
-
Здраствуйте, реально ли совершать клик по объекту зная его class и его порядковый номер (если не один)
-
@No именно так все и устроенно! Порядок такой — нажимаем на нужный объект левой кнопкой мыши — выбираем — двигать мышь и кликнуть на элемент — и выбираешь match (существует три вида клика — по css — по тексту match — b по координатам
-
@Turutur Ну match я видел. Только вот не будет работать если кнопок три и мне нужно кликнуть на вторую, а скрипт кликнет только на первую.
Получается нужен более продвинутый конструктор?
Например на с# этот клик я могу сделать этим кодом
HtmlElement he = instance.ActiveTab.GetDocumentByAddress(«0»).FindElementByTag(«form», 1).FindChildByAttribute(«span», «class», «b-combo__arrow», «text», 0);
if (he.IsVoid) return -1;
Можно ли этот код внедрить в BAS ? -
Ну мой главный вопрос: Реально ли подобный код перенести в BAS ?
HtmlElement he = instance.ActiveTab.GetDocumentByAddress(«0»).FindElementByTag(«form», 1).FindChildByAttribute(«span», «innertext», «Переводы», «regexp», 0);
if (he.IsVoid) return -1;
Если нельзя. Можно ли как сделать чтобы объект для клика искался по «innertext» или «innerhtml» ? -
@No человек — да ты продвинутый юзер — не пугай меня кодом — не мой уровень — где то видел выполнить код — Жди поддержку @support — или может еще кто шарит. Извиняй — не смог помочь. Если тема не палевая — запости пожалйста скрин и пример — может пригодится — я не встречал проблем с кликом по элементам….
-
Ну я знаю лишь азы С#, и код этот я беру с другого софта на подобии BAS.
Вот я и привык там кликать только по элементам (там по CSS кликать вроде бы и нельзя)и мне кажется что так удобней работать.
Например софт который кликает по значению «innertext» ,по идеи, должен быть рабочим дольше чем клики по css -
@No это дело — привычки — я сам слез с «зенки» — BAS больше нравиться — хотя еще в стадии разработки и да некоторые элементы реализованы » не так» — после использования «другого софта» — просто нужно смириться и понять здешний алгоримт)
-
@No
Здраствуйте, реально ли совершать клик по объекту зная его class и его порядковый номер (если не один)
Здравствуйте, да реально, для этого после селектора нужно поставить номер в треугольных скобках. Допускается использование переменных.
Например, 3 ссылка
a<2>
или сслыка в циклеa<[[CYCLE_INDEX]]>
-
@No
HtmlElement he = instance.ActiveTab.GetDocumentByAddress(«0»).FindElementByTag(«form», 1).FindChildByAttribute(«span», «class», «b-combo__arrow», «text», 0);
В БАС это будет так
page().all("form").at(0).css("span.b-combo__arrow").text()! [[RESULT_TEXT]] = _result()
Нужно вставлять в действие выполнить код
-
В будущем также планируется конструктор запросов, вроде конструктора для логических выражений, которые есть сейчас.
-
@No Ну берете весь код элемента или кусок кода, вставляете в поле, выбираете match вместо css, как показано на картинке. И происходит поиск по innerHTML
-
@support said in Как кликать по HTML а не CSS:
вроде конструктора для логических выражений, которые есть сейчас
@support — пожалуйста сделайте возможность в конструкторе регулярок — сразу переходить на страницу теста.
зачем: допустим — делал регулярку общую к каким то данным с разных страниц — то есть универсальную — например регулярка которая вытаскивает прокси и порты, ссылки и так далее — она сохранена в файл — и чтобы не тратить время на создание регулярки через констрктор при тесте — сразу проверить работает ли сохраненная регулярка или полученная с другого источника
-
@support например у меня есть такой код
<span class=»b-combo__item-inner» dbid=»46″ dbprid=»3″ style=»cursor:pointer»>Автомобили</span>Можно ли кликнуть используя только эту часть, ибо всё остальное не постоянное. (Не получается так)
style=»cursor:pointer»>Автомобили</span> -
@No Можно сайт, я бы попробовал.
-
@support Я думаю только вы сможете разобраться в этой ситуации)
Есть страница https://www.fl.ru/projects/ Тут нужно выбрать с выпадающего списка 2 категории, не важно какие, ну пускай это будет «Тексты: Статьи»
Можно конечно по простому сделать
Но тогда нельзя будет просто перестроить скрипт например на» Разработка игр: 3D Моделирование» А вот если бы клики происходили по innerHTML, то тогда было бы лишь достаточно изменить данные в переменной и скрипт бы кликал по нужным категориям.
Как подсказал @Canine , можно сделать клик указав просто текст без кода.
Но тогда вторую подкатегорию выбрать не получиться.
Что можете посоветовать?
Оглавление
- 1 Описание
- 2 Как добавить действие в проект?
- 3 Где это можно применить?
- 4 Как работать с экшеном?
- 4.1 Выбор события
- 4.2 Поиск элемента
- 4.3 Координаты
- 5 Пример использования
- 5.1 Примеры работы на C#
- 5.1.1 Эмуляция тач-нажатия
- 5.1.2 Скролл
- 5.1.3 Свайп вправо
- 5.1.4 Настройки
- 5.1.5 Демонстрационный проект
- 5.1 Примеры работы на C#
- 6 Полезные ссылки
Описание
Данный экшен позволяет эмулировать Touch-событие (нажатие пальцем).
Как добавить действие в проект?
Через контекстное меню Добавить действие → Табы → Событие Touch
Либо воспользуйтесь умным поиском.
Где это можно применить?
-
В случаях, когда вам необходимо эмулировать телефон или любое другое устройство с сенсорным экраном
-
В случаях, когда вам нужно максимально приблизить все действия к человеческим.
Как работать с экшеном?
Необходимо включить “Запись“ и режим ввода “Touch“ в окне браузера, чтобы все действия, выполненные в браузере, автоматически записывались, как Touch-события.
Выбор события
-
Touch — нажатие (клик/прикосновение);
-
Long Touch — длительное зажатие (ПКМ)
Поиск элемента
Координаты
Выполнить событие Touch в рамках указанных координат
-
Какая вкладка — Активная / Первая / По имени / По номеру
-
Координаты — необходимо вписать диапазон координат X и Y. Можно использовать переменные проекта —
{-Variable.example_var-}
.
Пример использования
Возьмем за пример наш ресурс, где можно потренироваться делать простые клики — https://lessons.zennolab.com/ru/index. Для реализации воспользуемся Конструктором действий.
Переходим на страницу в ProjectMaker’e.
Опускаемся ниже и находим поле для нажатия и выбора ОС. Нажимаем на место для “галочки” правой кнопкой мыши и выбираем “В конструктор действий”.
Выбираем действие Rise , Событие touch. Нажимаем на кнопку Тестировать для проверки.
Если клик совершился успешно, то нажимаем Добавить в проект
Примеры работы на C#
Начиная с версии 7.1.4.0, в CommandCenter.Tab добавлено свойство Touch с набором методов. В свойстве Touch есть базовые методы: TouchStart, TouchEnd, TouchMove, TouchCancel, а также комплексные методы с перегрузками Touch, SwipeIntoView, SwipeBetween и другие.
Эмуляция тач-нажатия
var tab = instance.ActiveTab;
var init = tab.FindElementByXPath("/html/body/button", 0); // Ищем HTML элемент через XPath
tab.Touch.Touch(init); // Жмём по нему
Скролл
var tab = instance.ActiveTab;
HtmlElement init = tab.FindElementByXPath(".//button", 0); // Ищем HTML элемент через XPath
tab.Touch.SwipeIntoView(init); // Скроллим экран тачами до нужного HTML элемента
Свайп вправо
var tab = instance.ActiveTab;
// Будем делать свайп внутри HTML элемента. Составим XPath выражение.
var canvas = tab.FindElementByXPath(@"//*[@id=""canvas""]", 0);
// Получаем его размеры: ширину и высоту
var width = canvas.BoundingClientWidth;
var height = canvas.BoundingClientHeight;
// Определяем координаты первого касания по оси X, и последнего - когда отпускаем палец
var offsetX = width / 4;
var minX = canvas.DisplacementInBrowser.X + offsetX;
var maxX = minX + width - 2*offsetX;
// Определяем координаты первого касания по оси Y, и последнего - когда отпускаем палец
var offsetY = height / 4;
var minY = canvas.DisplacementInBrowser.Y + offsetY;
var maxY = minY;
// Делаем свайп вправо
tab.Touch.SwipeBetween(minX, minY, maxX, maxY);
Настройки
Тут отображена только часть настроек. Полный список Вы можете найти в документации.
По умолчанию учитывается и рандомизируется ряд параметров: скорость, ускорение, кривая движения и другие. Все перемещения будут максимально естественными уже из «коробки», но если вам потребуется внести коррективы в поведение тач-событий – такая возможность тоже есть.
var tab = instance.ActiveTab;
var parameters = tab.Touch.GetCopyOfTouchEmulationParameters(); // Получаем текущие настройки тача
// Дальше пишем "parameters." и после точки syntax editor подскажет доступны поля этого объекта.
////////////////////////
// Некоторые примеры
////////////////////////
parameters.Acceleration = 1.2f; // Поставим ускорение посильнее
parameters.MinCurvature = 0; // Пусть минимальная кривизна - прямая линия
parameters.MaxCurvature = 1; // А максимальная кривизна - очень сильный изгиб
// Изгиб кривой ближе к начальной точке
parameters.MinCurvePeakShift = 0f;
parameters.MaxCurvePeakShift = 0.2f;
parameters.MinStep = 1; // Начальная скорость пониже
parameters.MaxStep = 60; // А финальная - выше
parameters.RightThumbProbability = 0.7f; // В 70% случаев будет использоваться правый палец, а в 30% - левый.
tab.Touch.SetTouchEmulationParameters(parameters); // ВАЖНО: ПРИМЕНЯЕМ НАСТРОЙКИ - ИНАЧЕ НИЧЕГО НЕ ИЗМЕНИТСЯ
// Ещё больше настроек здесь: https://help.zennolab.com/en/v7/zennoposter/7.1.4/webframe.html#topic951.html
// instance.ActiveTab.Touch.SetTouchEmulationParameters(new TouchEmulationParameters()); // Устанавливаем настройки по умолчанию
Демонстрационный проект
Полезные ссылки
-
Конструктор действий и Поиск по XPath
-
Событие Swipe
-
C# код (Си шарп код .net)
-
Выполнить событие
-
Диапазоны значений