Выполнение действия webbrowserdata ошибка обращения к instance activetab

Ошибки в логе | TermiDroid

Войти или зарегистрироваться

Ошибки в логе

Тема в разделе «Разбор ошибок», создана пользователем SlimperMan, 9 июн 2018.

  1. SlimperMan
    New Member

    Прошу объяснить причину появляющихся ошибок и действия, которые необходимо предпринять при их появлении:

    1. Выполнение действия WebBrowserTabManagement Ошибка обращения к Instance.GetTabByAddress
    2. Выполнение действия WebBrowserSettings Ошибка обращения к Instance.SetProxy
    3. Выполнение действия WebBrowserTab Ошибка обращения к Instance.ActiveTab
    4. Выполнение действия Emulation Ошибка обращения к Instance.SendText

Ответить в теме

Показать игнорируемое содержимое

Поделиться этой страницей

Ваше имя или e-mail:
У Вас уже есть учётная запись?
  • Нет, зарегистрироваться сейчас.
  • Да, мой пароль:
  • Забыли пароль?

Запомнить меня

Поиск

  • Искать только в заголовках
Сообщения пользователя:

Имена участников (разделяйте запятой).

Новее чем:
  • Искать только в этой теме
  • Искать только в этом разделе
    • Отображать результаты в виде тем

Быстрый поиск

  • Последние сообщения

Больше…

Саня

Сообщения: 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?


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 по координатам
    0_1475749790624_2016-10-06_212813.png


  • @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 категории, не важно какие, ну пускай это будет «Тексты: Статьи»
    Можно конечно по простому сделать
    alt text
    Но тогда нельзя будет просто перестроить скрипт например на» Разработка игр: 3D Моделирование» А вот если бы клики происходили по innerHTML, то тогда было бы лишь достаточно изменить данные в переменной и скрипт бы кликал по нужным категориям.
    Как подсказал @Canine , можно сделать клик указав просто текст без кода.
    alt text
    Но тогда вторую подкатегорию выбрать не получиться.
    Что можете посоветовать?


  • @No А если просто через ввод написать то что нужно оно вроде выбирает 0_1475782499389_постинг.png
    0_1475782625517_тест ввод.xml


  • rashk1n

    0 / 0 / 0

    Регистрация: 08.01.2016

    Сообщений: 13

    1

    Ошибка: Отсутствует внешняя точка для выхода из цикла или продолжения

    08.01.2016, 13:58. Показов 4528. Ответов 4

    Метки нет (Все метки)


    Выходит ошибка:
    «Отсутствует внешняя точка для выхода из цикла или продолжения». [Строка: 11; Cтолбец: 3]

    C#
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    {
        var postscollection = instance.ActiveTab.FindElementsByAttribute("div","onclick","wall.postClick","regexp");
        try {instance.ActiveTab.FindElementByAttribute("a","id","wall_more_link","regexp",0).Click();}
        catch{}
        currentCount = postscollection.Count;
        if (currentCount == lastCount)
        {   
            break;
        }
        lastCount = postscollection.Count;
        System.Threading.Thread.Sleep(2000);
    }

    Добавлено через 1 час 56 минут
    на break ошибку выдает

    __________________
    Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

    0

    Эксперт .NET

    5856 / 4733 / 2940

    Регистрация: 20.04.2015

    Сообщений: 8,361

    08.01.2016, 14:01

    2

    rashk1n,
    Нужно больше кода, ибо непонятно, что там до и после фигурных скобок.

    0

    rashk1n

    0 / 0 / 0

    Регистрация: 08.01.2016

    Сообщений: 13

    18.01.2016, 12:47

     [ТС]

    3

    код в zennoposter

    C#
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    var currentCount = 0; // текущее кол-во постов на странице
    var lastCount = 0;  // последнее значение кол-ва постов после скролла
     
    // пока текущее количество постов < чем перменная post_min
    while(currentCount<Convert.ToInt32(project.Variables["post_min"].Value));
    {
        // собираем коллекцию всех постов
        var postscollection = instance.ActiveTab.FindElementsByAttribute("div","onclick","wall.postClick","regexp");
        //пробуем кликнуть на дозагрузку элементов
        try {instance.ActiveTab.FindElementByAttribute("a","id","wall_more_link","regexp",0).Click();}
        catch{}
        
        currentCount = postscollection.Count;
        // проверяем изменилось ли кло-во элементов с момента последнего выполнения цикла
        if (currentCount>=lastCount)
        {
            break;
        }
        
        lastCount = postscollection.Count;
        System.Threading.Thread.Sleep(2000);
        
    }

    0

    Даценд

    Эксперт .NET

    5856 / 4733 / 2940

    Регистрация: 20.04.2015

    Сообщений: 8,361

    18.01.2016, 14:55

    4

    Лучший ответ Сообщение было отмечено rashk1n как решение

    Решение

    rashk1n,
    в 5-й строке уберите точку с запятой.

    C#
    1
    2
    3
    4
    
    while(currentCount<Convert.ToInt32(project.Variables["post_min"].Value))
    {
       //...
    }

    Иначе в цикле будет крутиться только пустой оператор. А весь код в строках 6-23 будет вне цикла и брику неоткуда выходить.

    1

    0 / 0 / 0

    Регистрация: 08.01.2016

    Сообщений: 13

    18.01.2016, 15:20

     [ТС]

    5

    Даценд, благодарю! не внимателен был.

    0

    Type Array
    Mandatory No
    Manifest version 2 или выше
    Example
    "permissions": [
      "webRequest"
    ]

    Используйте ключ permissions чтобы запросить специальные полномочия для вашего расширения. Этот ключ представляет собой массив строк, и каждая строка представляет собой запрос разрешения.

    Если вы запрашиваете разрешения с помощью этого ключа, тогда браузер может сообщить пользователю во время установки, что расширение запрашивает определенные привилегии, и попросить его подтвердить, что они готовы предоставить эти привилегии. Браузер также может позволять пользователю проверять права расширения после установки. Поскольку запрос на предоставление привилегий может повлиять на желание пользователей установить ваше расширение, запрос привилегий заслуживает внимательного рассмотрения. Например, вы хотите избежать запроса ненужных разрешений и можете указать информацию о том, почему вы запрашиваете разрешения, в описании магазина расширения. Дополнительные сведения о проблемах, которые следует учитывать, см. В статье Запрос необходимых разрешений .

    Для получения информации о том, как тестировать и предварительно просматривать запросы разрешений, см. Тестовые запросы разрешений на сайте Extension Workshop.

    Ключ может содержать три вида разрешений:

    • разрешения хоста (только Manifest V2, разрешения хоста указаны в ключе манифеста host_permission для Manifest V3 или выше).
    • API permissions
    • activeTab разрешение

    Host permissions

    Примечание. При использовании Manifest V3 или более поздней версии разрешения хоста должны быть указаны в ключе манифеста host_permission .

    Разрешения хоста указываются как шаблоны соответствия , и каждый шаблон определяет группу URL-адресов, для которых расширение запрашивает дополнительные привилегии. Например, разрешение хоста может быть "*://developer.mozilla.org/*" .

    Дополнительные привилегии включают:

    • XMLHttpRequest и получение доступа к этим источникам без ограничений на разные источники (даже для запросов, сделанных из сценариев содержимого)
    • умение читать закладки конкретных метаданных без «закладок» разрешения, таких как url , title , и favIconUrl свойства tabs.Tab объектов
    • возможность программно внедрять скрипты (с помощью tabs.executeScript() ) в страницы, обслуживаемые из этих источников
    • возможность получать события от API webrequest для этих хостов
    • возможность доступа к файлам cookie для этого хоста с помощью API cookies , если также включено разрешение API "cookies" .
    • обход защиты от отслеживания для страниц расширения,где хост указан как полный домен или с подстановочными знаками.Однако скрипты содержимого могут обходить защиту от отслеживания только для хостов,указанных с полным доменом.

    В Firefox,начиная с версии 56,расширения автоматически получают разрешения хоста для своего собственного происхождения,которое имеет вид:

    moz-extension:
    

    где 60a20a9b-1ad4-af49-9b6c-c64c98c37920 — это внутренний идентификатор расширения. Расширение может получить этот URL программно, вызвав extension.getURL() :

    browser.extension.getURL("");
    // moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/
    

    API permissions

    Разрешения API указываются в виде ключевых слов, и каждое ключевое слово обозначает API WebExtension, который расширение хотело бы использовать.

    В настоящее время доступны следующие ключевые слова:

    • activeTab
    • alarms
    • background
    • bookmarks
    • browserSettings
    • browsingData
    • captivePortal
    • clipboardRead
    • clipboardWrite
    • contentSettings
    • contextMenus
    • contextualIdentities
    • cookies
    • debugger
    • dns
    • downloads
    • downloads.open
    • find
    • geolocation
    • history
    • identity
    • idle
    • management
    • menus
    • menus.overrideContext
    • nativeMessaging
    • notifications
    • pageCapture
    • pkcs11
    • privacy
    • proxy
    • scripting
    • search
    • sessions
    • storage
    • tabHide
    • tabs
    • theme
    • topSites
    • unlimitedStorage
    • webNavigation
    • webRequest
    • webRequestBlocking

    В большинстве случаев разрешение просто предоставляет доступ к API,за следующими исключениями:

    • tabs дает вам доступ к privileged parts of the tabs API без необходимости разрешения хоста : Tab.url , Tab.title и Tab.faviconUrl .

      • В Firefox 85 и выше, вы также должны tabs , если вы хотите включить url в queryInfo параметра для tabs.query() . Остальные API tabs можно использовать без запроса разрешения.
      • Начиная с Firefox 86 и Chrome 50, соответствующие разрешения хоста также можно использовать вместо разрешения «вкладки».
    • webRequestBlocking позволяет использовать аргумент "blocking" , чтобы вы могли modify and cancel requests .
    • downloads.open позволяет использовать API downloads.open() .
    • tabHide позволяет использовать API tabs.hide() .

    activeTab permission

    Это разрешение указано как "activeTab" . Если расширение имеет разрешение activeTab , тогда, когда пользователь взаимодействует с расширением, расширению предоставляются дополнительные привилегии только для активной вкладки.

    «Взаимодействие с пользователем» включает:

    • пользователь нажимает на действие браузера или действие страницы расширения
    • пользователь выбирает пункт контекстного меню
    • пользователь активирует комбинацию клавиш,определенную расширением

    Дополнительными привилегиями являются:

    • Возможность программно вставлять JavaScript или CSS во вкладку с помощью browser.tabs.executeScript() и browser.tabs.insertCSS()
    • Доступ к привилегированным частям API вкладок для текущей вкладки: Tab.url , Tab.title и Tab.faviconUrl .

    Это разрешение предназначено для того,чтобы позволить расширениям выполнять общие задачи,не предоставляя им очень мощных разрешений.Многие расширения хотят «сделать что-то с текущей страницей,когда пользователь попросит».

    Например, рассмотрим расширение, которое хочет запустить сценарий на текущей странице, когда пользователь щелкает действие браузера. Если разрешение activeTab не существует, расширение должно будет запросить разрешение хоста <all_urls> . Но это дает расширению больше возможностей, чем ему нужно: теперь оно может выполнять сценарии на любой вкладке в любое время , когда ему нравится, а не только на активной вкладке и только в ответ на действие пользователя.

    Примечание. Вы можете получить доступ только к той вкладке / данным, которые были там, когда произошло взаимодействие с пользователем (например, щелчок). Когда активная вкладка уходит (например, из-за завершения загрузки или какого-либо другого события), разрешение больше не дает вам доступа к вкладке.

    Обычно вкладка, которой предоставлено activeTab , — это просто текущая активная вкладка, за исключением одного случая. menus API , дает расширение , чтобы создать пункт меню , который показан , если пользователь контекстно-нажимает на вкладке (то есть, на элементе в TabStrip , который позволяет пользователю переключаться с одной вкладки на другую).

    Если пользователь щелкает такой элемент, то разрешение activeTab предоставляется для вкладки, которую щелкнул пользователь, даже если это не текущая активная вкладка (в Firefox 63, ошибка 1446956 ).

    Clipboard access

    Unlimited storage

    Разрешение unlimitedStorage :

    • Позволяет расширениям превышать любую квоту, установленную API storage.local
    • В Firefox позволяет расширениям создавать «постоянную» базу данных IndexedDB без запроса браузера у пользователя во время создания базы данных.

    Example

     "permissions": ["*://developer.mozilla.org/*"]
    

    Только в Manifest V2 запрашивайте привилегированный доступ к страницам на странице developer.mozilla.org .

    Запросите доступ к привилегированным частям API tabs .

      "permissions": ["*://developer.mozilla.org/*", "tabs"]
    

    Только в Manifest V2 запросите оба вышеуказанных разрешения.

    Browser compatibility

    Desktop Mobile
    Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet
    permissions

    Yes

    14

    48

    ?

    Yes

    14

    ?

    ?

    48

    ?

    15

    ?

    activeTab

    Yes

    79

    48

    ?

    Yes

    14

    ?

    ?

    48

    ?

    15

    ?

    alarms

    Yes

    79

    48

    ?

    Yes

    14

    ?

    ?

    48

    ?

    15

    ?

    background

    10

    79

    No

    ?

    No

    No

    ?

    ?

    No

    ?

    No

    ?

    bookmarks

    Yes

    15

    48

    ?

    Yes

    No

    ?

    ?

    No

    ?

    No

    ?

    browserSettings

    No

    No

    56

    ?

    No

    No

    ?

    ?

    56

    ?

    No

    ?

    browsingData

    Yes

    79

    53

    ?

    Yes

    No

    ?

    ?

    85

    56-79

    ?

    No

    ?

    captivePortal

    No

    No

    68

    ?

    No

    No

    ?

    ?

    No

    ?

    No

    ?

    clipboardRead

    Yes

    79

    54

    ?

    Yes

    No

    ?

    ?

    54

    ?

    No

    ?

    clipboardWrite

    Yes

    79

    51

    ?

    Yes

    14

    ?

    ?

    51

    ?

    15

    ?

    contentSettings

    Yes

    79

    No

    ?

    Yes

    No

    ?

    ?

    No

    ?

    No

    ?

    contextMenus

    Yes

    14

    55

    Доступно как псевдоним для разрешения menus .

    ?

    Yes

    14

    Доступно как псевдоним для разрешения menus .

    ?

    ?

    No

    ?

    No

    ?

    contextualIdentities

    No

    No

    53

    ?

    No

    No

    ?

    ?

    53

    ?

    No

    ?

    cookies

    Yes

    14

    48

    ?

    Yes

    14

    ?

    ?

    48

    ?

    15

    ?

    debugger

    Yes

    79

    No

    ?

    Yes

    No

    ?

    ?

    No

    ?

    No

    ?

    dns

    No

    No

    60

    ?

    No

    No

    ?

    ?

    60

    ?

    No

    ?

    downloads

    Yes

    79

    48

    ?

    Yes

    No

    ?

    ?

    48

    ?

    No

    ?

    downloads_open

    Yes

    79

    48

    ?

    Yes

    No

    ?

    ?

    48

    ?

    No

    ?

    find

    No

    No

    57

    ?

    No

    No

    ?

    ?

    No

    ?

    No

    ?

    geolocation

    Yes

    14

    54

    ?

    Yes

    No

    ?

    ?

    54

    ?

    No

    ?

    history

    Yes

    79

    49

    ?

    Yes

    No

    ?

    ?

    No

    ?

    No

    ?

    identity

    Yes

    79

    53

    ?

    Yes

    No

    ?

    ?

    No

    ?

    No

    ?

    idle

    Yes

    15

    48

    ?

    Yes

    No

    ?

    ?

    48

    ?

    No

    ?

    management

    Yes

    79

    51

    ?

    Yes

    No

    ?

    ?

    51

    ?

    No

    ?

    menus

    No

    No

    53

    ?

    No

    14

    ?

    ?

    No

    ?

    No

    ?

    nativeMessaging

    29

    15

    50

    ?

    16

    14

    ?

    ?

    No

    ?

    15

    ?

    notifications

    5

    79

    48

    ?

    25

    No

    ?

    ?

    48

    ?

    No

    ?

    pageCapture

    Yes

    79

    No

    ?

    Yes

    No

    ?

    ?

    No

    ?

    No

    ?

    pkcs11

    No

    No

    58

    ?

    No

    No

    ?

    ?

    No

    ?

    No

    ?

    privacy

    Yes

    79

    54

    ?

    Yes

    No

    ?

    ?

    54

    ?

    No

    ?

    proxy

    33

    79

    55

    ?

    No

    No

    ?

    ?

    55

    ?

    No

    ?

    search

    No

    No

    63

    ?

    No

    No

    ?

    ?

    No

    ?

    No

    ?

    sessions

    Yes

    79

    52

    ?

    Yes

    No

    ?

    ?

    No

    ?

    No

    ?

    storage

    Yes

    14

    48

    ?

    Yes

    14

    ?

    ?

    48

    ?

    15

    ?

    tabHide

    No

    No

    61

    ?

    No

    No

    ?

    ?

    No

    ?

    No

    ?

    tabs

    Yes

    14

    48

    ?

    Yes

    14

    ?

    ?

    54

    ?

    15

    ?

    theme

    No

    No

    55

    ?

    No

    No

    ?

    ?

    No

    ?

    No

    ?

    topSites

    Yes

    79

    52

    ?

    Yes

    No

    ?

    ?

    52

    ?

    No

    ?

    unlimitedStorage

    Yes

    14

    56

    ?

    No

    16

    Начиная с Safari 16 квота хранилища не ограничена.

    14

    Не предоставляет неограниченную квоту хранения.Предоставляет квоту на хранение 10 МБ вместо стандартных 5 МБ.

    ?

    ?

    56

    ?

    16

    Начиная с Safari 16 квота хранилища не ограничена.

    15

    Не предоставляет неограниченную квоту хранения.Предоставляет квоту на хранение 10 МБ вместо стандартных 5 МБ.

    ?

    webNavigation

    Yes

    14

    48

    ?

    17

    14

    ?

    ?

    48

    ?

    15

    ?

    webRequest

    Yes

    14

    48

    ?

    Yes

    14

    ?

    ?

    48

    ?

    No

    ?

    webRequestBlocking

    Yes

    14

    48

    ?

    Yes

    No

    ?

    ?

    48

    ?

    No

    ?



    Web Extensions

    options_ui
    page_action
    protocol_handlers
    short_name

    Ошибки в логе | TermiDroid

    Войти или зарегистрироваться

    Ошибки в логе

    Тема в разделе «Разбор ошибок», создана пользователем SlimperMan, 9 июн 2018.


    1. SlimperMan

      SlimperMan
      New Member

      Прошу объяснить причину появляющихся ошибок и действия, которые необходимо предпринять при их появлении:

      1. Выполнение действия WebBrowserTabManagement Ошибка обращения к Instance.GetTabByAddress
      2. Выполнение действия WebBrowserSettings Ошибка обращения к Instance.SetProxy
      3. Выполнение действия WebBrowserTab Ошибка обращения к Instance.ActiveTab
      4. Выполнение действия Emulation Ошибка обращения к Instance.SendText


      SlimperMan,
      9 июн 2018

      #1

      Ответить

    Ответить в теме

    Показать игнорируемое содержимое

    Поделиться этой страницей

    Ваше имя или e-mail:
    У Вас уже есть учётная запись?
    • Нет, зарегистрироваться сейчас.
    • Да, мой пароль:
    • Забыли пароль?

    Запомнить меня


    TermiDroid

    Поиск

    • Искать только в заголовках
    Сообщения пользователя:

    Имена участников (разделяйте запятой).

    Новее чем:
    • Искать только в этой теме
    • Искать только в этом разделе
      • Отображать результаты в виде тем

    Быстрый поиск

    • Последние сообщения

    Больше…

    vladdog


    • #1

    Выдает вот такую ошибку как на скрине1

    Безымянный.png

    • 1.png

      22,7 КБ
      Просмотры: 15

    • 2.png

      21 КБ
      Просмотры: 12

    • 3.png

      21,9 КБ
      Просмотры: 10

    • 4.png

      23,2 КБ
      Просмотры: 10

    • 5.png

      9,2 КБ
      Просмотры: 10

    irina2009samara


    • #2

    У меня такое выдает, когда сильно загружен ноутбук

    игорь


    • #3

    походу с скоростью интернета что- то, не смог открыть окно, или глюк, или комп сильно загружен оперативка на пределе и не открыло окно инстанса

    vladdog


    • #4

    походу с скоростью интернета что- то, не смог открыть окно, или глюк, или комп сильно загружен оперативка на пределе и не открыло окно инстанса

    не это исключено, оперативы 6г, инет тоже норм

    vladdog


    • #5

    не это исключено, оперативы 6г, инет тоже норм

    в один поток работает

    игорь


    • #6

    не это исключено, оперативы 6г, инет тоже норм

    написано же глюк, там описаны все возможные причины при появлении этой ошибки

    игорь


    • #7

    да хоть в 10 глюк зенобокса бывает и не то еще возможно

    vladdog


    • #8

    уж слишком часто он бывает

    irina2009samara


    • #9

    не это исключено, оперативы 6г, инет тоже норм

    у меня тоже оперативка на 6гб, проводной скоростной инет, и тем не менее часто была эта ошибка, когда пользовалась последней версией зеннобокса. Переустановила на v5.7.5.3 — теперь все ок.

    vladdog


    • #10

    у меня тоже оперативка на 6гб, проводной скоростной инет, и тем не менее часто была эта ошибка, когда пользовалась последней версией зеннобокса. Переустановила на v5.7.5.3 — теперь все ок.

    сейчас попробую

    Jax-on


    • #11

    Тоже часто и густо такая ошибка была, работала стабильней всех 5.7.1.0. После нее каждое обновление было с такой ошибкой, приходилось откатываться на 5.7.1.0. Ошибка эта была на 3г модеме когда работал. Сейчас не пойму почему, но ошибки эти бывают крайне редко, версия 5.8.7.0. На ПК вчера проскочила разок, пока полет нормальный. Полтергейст может? (what)

    Ошибки в логе | TermiDroid

    Войти или зарегистрироваться

    Ошибки в логе

    Тема в разделе «Разбор ошибок», создана пользователем SlimperMan, 9 июн 2018.

    1. 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 по координатам
    0_1475749790624_2016-10-06_212813.png


  • @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 категории, не важно какие, ну пускай это будет «Тексты: Статьи»
    Можно конечно по простому сделать
    alt text
    Но тогда нельзя будет просто перестроить скрипт например на» Разработка игр: 3D Моделирование» А вот если бы клики происходили по innerHTML, то тогда было бы лишь достаточно изменить данные в переменной и скрипт бы кликал по нужным категориям.
    Как подсказал @Canine , можно сделать клик указав просто текст без кода.
    alt text
    Но тогда вторую подкатегорию выбрать не получиться.
    Что можете посоветовать?


  • @No А если просто через ввод написать то что нужно оно вроде выбирает 0_1475782499389_постинг.png
    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#
    1
    2
    3
    4
    5
    6
    7
    
    public void Click()
            {
                var div = instance.ActiveTab.FindElementByXPath("//div[@class='ipo-CompetitionRenderer ']", 0);
                string innerHtml = div.InnerHtml;
                var button = div.FindChildByXPath(".//div[@class='wl-MediaButtonLoader wl-MediaButtonLoader_ML1 ']", 0);
                button.Click();
            }
    C#
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    
    public  string Statistika()
            {
                string statall = String.Empty;
                Tab tab = instance.ActiveTab;
                HtmlElementCollection itemsCollection = tab.FindElementsByXPath("//div[@class='lv-MatchLiveView_Container ']");
                var list = new List<HtmlElementCollection>();
           
                list.Add(itemsCollection);
                foreach (HtmlElement stat in itemsCollection)
                {
                    var home = stat.FindChildByXPath(".//div[@class='ml1-ScoreHeader_TeamText ']", 0);
                    HtmlElement home2 = stat.FindChildByXPath(".//div[@class='ml1-ScoreHeader_TeamText ']", 1);
                    HtmlElement score = stat.FindChildByXPath(".//div[@class='ml1-ScoreHeader_Score ']", 0);
                    HtmlElement score2 = stat.FindChildByXPath(".//div[@class='ml1-ScoreHeader_Score ']", 1);
                    HtmlElement time = stat.FindChildByXPath(".//span[@class='ml1-ScoreHeader_Clock ']", 0);
                    HtmlElement att = stat.FindChildByXPath(".//div[@class='ml1-StatWheel_Team1Text ']", 0);
                    HtmlElement dang = stat.FindChildByXPath(".//div[@class='ml1-StatWheel_Team1Text ']", 1);
                    HtmlElement pass = stat.FindChildByXPath(".//div[@class='ml1-StatWheel_Team1Text ']", 2);
                    HtmlElement off = stat.FindChildByXPath(".//span[@class='ml1-SoccerStatsBar_MiniBarValue ml1-SoccerStatsBar_MiniBarValue-1 ']", 1);
                    HtmlElement on = stat.FindChildByXPath(".//span[@class='ml1-SoccerStatsBar_MiniBarValue ml1-SoccerStatsBar_MiniBarValue-1 ']", 0);
                    HtmlElement att2 = stat.FindChildByXPath(".//div[@class='ml1-StatWheel_Team2Text ']", 0);
                    HtmlElement dang2 = stat.FindChildByXPath(".//div[@class='ml1-StatWheel_Team2Text ']", 1);
                    HtmlElement pass2 = stat.FindChildByXPath(".//div[@class='ml1-StatWheel_Team2Text ']", 2);
                    HtmlElement off2 = stat.FindChildByXPath(".//span[@class='ml1-SoccerStatsBar_MiniBarValue ml1-SoccerStatsBar_MiniBarValue-2 ']", 1);
                    HtmlElement on2 = stat.FindChildByXPath(".//span[@class='ml1-SoccerStatsBar_MiniBarValue ml1-SoccerStatsBar_MiniBarValue-2 ']", 0);
     
                    statall = string.Format($" {home.InnerText}.{home2.InnerText}.{score.InnerText}-{score2.InnerText}.{time.InnerText}. Атаки {att.InnerText}-{att2.InnerText}; Опасные {dang.InnerText}-{dang2.InnerText}; Владение {pass.InnerText}-{pass2.InnerText}; По {on.InnerText}-{on2.InnerText}; Мимо {off.InnerText}-{off2.InnerText}");
                   //Console.WriteLine(statall);
                   //Console.ReadLine();
                  }
     
                return statall;
     
            }

    Добавлено через 6 часов 40 минут
    Вопрос решен

    __________________
    Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

    0

    vladdog

    • #1

    Выдает вот такую ошибку как на скрине1

    Безымянный.png

    • 1.png

      22,7 КБ
      Просмотры: 15

    • 2.png

      21 КБ
      Просмотры: 12

    • 3.png

      21,9 КБ
      Просмотры: 10

    • 4.png

      23,2 КБ
      Просмотры: 10

    • 5.png

      9,2 КБ
      Просмотры: 10

    irina2009samara

    • #2

    У меня такое выдает, когда сильно загружен ноутбук

    игорь

    • #3

    походу с скоростью интернета что- то, не смог открыть окно, или глюк, или комп сильно загружен оперативка на пределе и не открыло окно инстанса

    vladdog

    • #4

    походу с скоростью интернета что- то, не смог открыть окно, или глюк, или комп сильно загружен оперативка на пределе и не открыло окно инстанса

    не это исключено, оперативы 6г, инет тоже норм

    vladdog

    • #5

    не это исключено, оперативы 6г, инет тоже норм

    в один поток работает

    игорь

    • #6

    не это исключено, оперативы 6г, инет тоже норм

    написано же глюк, там описаны все возможные причины при появлении этой ошибки

    игорь

    • #7

    да хоть в 10 глюк зенобокса бывает и не то еще возможно

    vladdog

    • #8

    уж слишком часто он бывает

    irina2009samara

    • #9

    не это исключено, оперативы 6г, инет тоже норм

    у меня тоже оперативка на 6гб, проводной скоростной инет, и тем не менее часто была эта ошибка, когда пользовалась последней версией зеннобокса. Переустановила на v5.7.5.3 — теперь все ок.

    vladdog

    • #10

    у меня тоже оперативка на 6гб, проводной скоростной инет, и тем не менее часто была эта ошибка, когда пользовалась последней версией зеннобокса. Переустановила на v5.7.5.3 — теперь все ок.

    сейчас попробую

    Jax-on

    • #11

    Тоже часто и густо такая ошибка была, работала стабильней всех 5.7.1.0. После нее каждое обновление было с такой ошибкой, приходилось откатываться на 5.7.1.0. Ошибка эта была на 3г модеме когда работал. Сейчас не пойму почему, но ошибки эти бывают крайне редко, версия 5.8.7.0. На ПК вчера проскочила разок, пока полет нормальный. Полтергейст может? (what)

    I’m using activeTab and tabs permissions in my manifest.json file, and I’m attempting to run the following code in my background.js file:

    background.js

    chrome.tabs.onUpdated.addListener(() => {
        chrome.tabs.query({active: true, currentWindow: true}, tabs => {
            chrome.tabs.executeScript(tabs[0].id, {code: 'alert("test");'});
        });
    });
    

    This code should execute the script, alert("test");, on the active tab whenever any tab is updated.

    However, it isn’t working and I’m getting the following error:

    Unchecked runtime.lastError: Cannot access contents of url "https://example.com/". Extension manifest must request permission to access this host.
    

    I did some research on the Google Web Extension documentation and discovered a few things. The «activeTab» permission allows the execution of scripts on the active tab. According to the documentation, my code should work, but it isn’t.

    Why I’m getting this error?

    Саня

    Сообщения: 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?


    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 по координатам
    0_1475749790624_2016-10-06_212813.png


  • @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 категории, не важно какие, ну пускай это будет «Тексты: Статьи»
    Можно конечно по простому сделать
    alt text
    Но тогда нельзя будет просто перестроить скрипт например на» Разработка игр: 3D Моделирование» А вот если бы клики происходили по innerHTML, то тогда было бы лишь достаточно изменить данные в переменной и скрипт бы кликал по нужным категориям.
    Как подсказал @Canine , можно сделать клик указав просто текст без кода.
    alt text
    Но тогда вторую подкатегорию выбрать не получиться.
    Что можете посоветовать?


  • @No А если просто через ввод написать то что нужно оно вроде выбирает 0_1475782499389_постинг.png
    0_1475782625517_тест ввод.xml


  • «1С-Битрикс: Управление сайтом» — одна из самых популярных коммерческих CMS. Как и в случае с любой другой CMS, при работе с Битриксом возникают разные ошибки, мешающие нормальной работе сайта. Выявить их можно с помощью встроенного функционала проверки системы в панели администратора Битрикс.

    Чтобы запустить проверку системы, перейдите в панель администратора по ссылке https://example.com/bitrix/admin (замените example.com на ваш домен), введите логин и пароль учетной записи администратора сайта, перейдите в Настройки — ИнструментыПроверка системы и нажмите на кнопку Начать тестирование. Дождитесь окончания проверки. В форме Проверка системы могут быть ошибки, которые, на первый взгляд, не влияют на работу сайта, однако требуют внимания владельца или системного администратора сайта.

    В данной статье рассмотрим способы устранения популярных ошибок, возникающих в CMS Битрикс.  

    1. Ошибка «The script encountered an error and will be aborted. To view extended error messages, enable this feature in .settings.php.» при переходе на сайт
    2. «Замечание. Агенты выполняются на хитах, рекомендуется перевести выполнение агентов на cron» при проверке системы 
    3. Ошибка работы с сокетами при проверке системы
    4. Ошибка! Не работает «Отправка почты» и «Отправка почтового сообщения больше 64Кб» при проверке системы
    5. «Служебные скрипты в корне сайта. Ошибка! Файл существует» при проверке системы
    6. Ошибка «Загрузка файла» и «Загрузка файла больше 4Мб» при проверке системы

    Ошибка «The script encountered an error and will be aborted. To view extended error messages, enable this feature in .settings.php.» при переходе на сайт

    Такая ошибка в большинстве случаев означает некорректное подключение к базе данных. В первую очередь проверьте, работает ли СУБД, введя следующую команду в терминал:

    # systemctl status mysql

    Если СУБД работает, проверьте файлы, расположенные в /home/bitrix/www/bitrix/.settings.php и /home/bitrix/www/bitrix/php_interface/dbconn.php (при необходимости замените /home/bitrix/www на корневую директорию вашего проекта, далее в статье будут использованы относительные пути вида /bitrix/php_interface/dbconn.php). В этих файлах указываются доступы для подключения к базе данных сайта.

    Для файла .settings.php

    'host' => 'localhost',
    'database' => 'database_name',
    'login' => 'user_name',
    'password' => 'secret_password',

    Для файла dbconn.php

    $DBHost = "localhost";
    $DBLogin = 'user_name';
    $DBPassword = 'secret_password’;
    $DBName = "database_name";

    Проверьте корректность указанных данных:

    • хост базы данных (должен быть localhost, если СУБД установлена локально),
    • название базы данных (замените в обоих файлах database_name на название своей базы данных),
    • имя пользователя базы данных (замените user_name на имя своего пользователя базы данных)
    • и пароль пользователя базы данных (замените secret_password на пароль пользователя вашей базы данных).

    Иногда бывает, что при развертывании сайта из бэкапа на новом сервере вместо данных указываются звездочки. В таком случае просто укажите свои данные в обоих файлах.

    «Замечание. Агенты выполняются на хитах, рекомендуется перевести выполнение агентов на cron» при проверке системы 

    При проверке системы Битрикс часто возникает замечание выполнения агентов на cron. Данное замечание не мешает работе сайта, однако может повлиять на выполнение разных функций вашего проекта, например, на отправку почты.

    Как правило, для настройки выполнения агентов на cron достаточно следовать рекомендациям проверки системы. Для этого нажмите на вопросительный знак справа от уведомления:

    Однако такой способ срабатывает не всегда. Если в файле /bitrix/php_interface/dbconn.php есть строка define('BX_CRONTAB_SUPPORT', true); и в cron есть задание на ежеминутный запуск скрипта /var/www/bitrix/modules/main/tools/cron_events.php, попробуйте следующее решение.

    Отключим выполнение агентов на хитах, для этого в панели администратора Битрикс переходим в Настройки — Инструменты — Командная PHP-строка, вводим следующую команду и нажимаем Выполнить:

    COption::SetOptionString("main", "agents_use_crontab", "N"); 
    echo COption::GetOptionString("main", "agents_use_crontab", "N"); 
    COption::SetOptionString("main", "check_agents", "N"); 
    echo COption::GetOptionString("main", "check_agents", "Y");

    Результат выполнения PHP-команды должен быть «NN».

    Далее в файле /bitrix/php_interface/dbconn.php закомментируем следующие строки (добавьте перед строками знак #):

    define("BX_CRONTAB_SUPPORT", true);
    define("BX_CRONTAB", true);

    После чего в этот же файл dbconn.php добавьте строки:

    if(!(defined("CHK_EVENT") && CHK_EVENT===true))
    define("BX_CRONTAB_SUPPORT", true);

    Далее необходимо из учетной записи владельца сайта (если вы работаете в консоли сервера из-под учетной записи root, что не рекомендуется, после создания файла измените владельца файла с помощью команды chown) создать новый файл cron_events.php в директории /bitrix/php_interface/ и добавить в него следующий код:

    <?php
    $_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__)."/../..");
    $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];
    define("NO_KEEP_STATISTIC", true);
    define("NOT_CHECK_PERMISSIONS",true);
    define('BX_NO_ACCELERATOR_RESET', true);
    define('CHK_EVENT', true);
    define('BX_WITH_ON_AFTER_EPILOG', true);
    require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
    @set_time_limit(0);
    @ignore_user_abort(true);
    CAgent::CheckAgents();
    define("BX_CRONTAB_SUPPORT", true);
    define("BX_CRONTAB", true);
    CEvent::CheckEvents();
    if(CModule::IncludeModule('sender'))
    {
        BitrixSenderMailingManager::checkPeriod(false);
        BitrixSenderMailingManager::checkSend();
    }
    require($_SERVER['DOCUMENT_ROOT']."/bitrix/modules/main/tools/backup.php");
    CMain::FinalActions();
    ?>

    После того, как файл создан с нужными правами, добавляем его в cron. Обязательно делаем это для владельца сайта, так как задания cron для пользователя root могут стать серьезной угрозой безопасности для сайта и сервера. Выполним следующую команду (в нашем случае владелец сайта — bitrix, замените это значение на имя пользователя своего сайта при необходимости):

    # crontab -ubitrix -e

    Откроется файл с заданиями crontab пользователя сайта. Вставьте следующую строку:

    */1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.php

    В данной строке значение */1 * * * * означает выполнение скрипта раз в минуту, вы можете скорректировать частоту выполнения в зависимости от ваших требований к проекту.

    Путь /usr/bin/php — путь для PHP, оставьте его таким же, если у вас на сервере нет альтернативных версий PHP. Если вы используете панель ISPmanager, возможно, ваш сайт работает на альтернативной версии PHP. Проверить версию можно в панели ISPmanager, а узнать корректный путь для PHP — с помощью команды whereis php в консоли сервера. Например, для альтернативной версии PHP 8.1 путь может быть таким: /opt/php81/bin/php. Замените путь к скрипту /home/bitrix/www/bitrix/php_interface/cron_events.php на свой в случае необходимости.

    Если в cron есть запись для выполнения скрипта /var/www/bitrix/modules/main/tools/cron_events.php — ее лучше закомментировать.

    Ошибка работы с сокетами при проверке системы

    При проверке системы в панели администратора Битрикс может возникнуть ошибка «Работа с сокетами. Ошибка! Не работает».

    Также из-за ошибки работы с сокетами другие тесты проводятся некорректно, выдавая ошибку «Замечание. Не удалось проверить из-за ошибки в работе с сокетами».

    В большинстве случаев такая ошибка появляется после переноса проекта на новый сервер или при развертывании проекта на локальном компьютере для тестирования. Возникает данная ошибка из-за того, что IP-адрес сервера отличается от IP-адреса, указанного в А-записях домена на серверах DNS. Если вы переносите проект на новый сервер, необходимо указать IP-адрес нового сервера в А-записях и дождаться глобального обновления DNS.

    Если А-записи указаны корректно, возможно в файле /etc/hosts на сервере указан неверный IP для вашего домена. Проверьте файл и укажите правильное значение:

    1.2.3.4 example.com

    Замените 1.2.3.4 на IP адрес вашего сервера, а example.com на доменное имя вашего сайта.

    Бывает, что на сервере может возникнуть проблема с корневыми сертификатами. Можно попробовать обновить их. В CentOS 7 ведите в консоли сервера:

    # yum install ca-certificates -y
    # update-ca-trust

    Ошибка! Не работает «Отправка почты» и «Отправка почтового сообщения больше 64Кб» при проверке системы

    Из описания ошибки понятно, что она означает. В большинстве случаев для устранения данной ошибки требуется вмешательство системного администратора или технической поддержки Битрикс. Проблем, из-за которых почта не работает, много. Они могут быть на стороне сервера, в настройках проекта, либо из-за некорректно работающих модулей отправки почты.

    Битрикс использует стандартную функцию php mail() для отправки почты, однако нередко используются другие способы, например, через внешний почтовый сервер. Для проверки работы php mail() можно воспользоваться инструкцией из ответов на часто задаваемые вопросы на форуме Битрикс. 

    Также можно выполнить проверку с помощью следующего кода PHP (вставьте его в командную строку PHP в панели администратора Битрикс):

    $mail="test@testmail.ru"; // укажите ваш почтовый ящик, на который нужно отправить тестовое письмо
    $subject ="test" ; // укажите любую тему письма
    $text= "test message"; // укажите любой текст письма
    if( mail($mail, $subject, $text) )
    {
    echo 'Письмо отправлено!'; }
    else{
    echo 'Ошибка! Не отправлено';
    }

    Если письмо не пришло, но вы получили уведомление «Письмо отправлено», значит, письма уходят и проблема в настройках CMS либо в модуле отправки почты. В данном случае можно обратиться в техподдержку Битрикс для выявления проблем в настройках CMS или к разработчику модуля отправки почты.

    Не исключено, что письмо просто попало в спам. Можно попробовать отправить на другой почтовый ящик (с другим почтовым доменом). Если письмо пришло — значит, адрес отправителя в черном списке почтового домена, до которого письмо не дошло. Если письмо не дошло — возможно, ваш почтовый домен или IP-адрес попали в глобальные черные списки.

    Если письмо не пришло, а вы получили уведомление «Отправка не удалась» — необходимо более детальное изучение проблемы. В таком случае потребуется вмешательство системного администратора.

    «Служебные скрипты в корне сайта. Ошибка! Файл существует» при проверке системы

    Такая ошибка говорит о наличии в корне сайта служебных скриптов, например, restore.php. Данные скрипты, как правило, добавляют временно для проведения каких-либо работ (например, restore.php — для восстановления сайта из резервной копии). Так или иначе, после выполнения работ такие скрипты необходимо удалить с сервера, так как они представляют угрозу безопасности сайту и данным.

    Ошибка «Загрузка файла» и «Загрузка файла больше 4Мб» при проверке системы

    Проверка системы Битрикс загружает файл размером более 4Мб. В большинстве случаев такая ошибка говорит об ограничениях в параметре upload_max_filesize для PHP.

    Необходимо в файле конфигурации PHP установить данное значение выше 4Мб и перезапустить веб-сервер. В зависимости от окружения файл конфигурации PHP может находится в разных местах. Обычно данное значение устанавливается в файле /etc/php.ini.

    Если вы используете панель ISPmanager — поправить конфигурацию можно прямо в ней: выберите нужный сайт, нажмите на кнопку PHP в верхней панели, найдите параметр upload_max_filesize и укажите нужное значение. Если вы используете окружение BitrixVM, необходимо вносить изменения в специальные файлы конфигурации, чтобы после перезагрузки сервера они не вернулись в исходное состояние. Подробнее можете узнать по ссылке.

    Возможно, вам также будет интересно:

  • Выполнение действия list ошибка при обработке списка
  • Выполнение действия htmlelement ошибка обращения к instance activetab
  • Выполнен сброс поскольку на виртуальном процессоре возникла неустранимая ошибка
  • Выплатить стипендию лексическая ошибка
  • Выпишите словосочетания где нарушена лексическая сочетаемость исправьте ошибки на улице лил

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии