как выбрать тип селектора элементов по умолчанию ?

Поддержка
  • @Fox Хм тогда понятно, я так и думал. Когда пишешь не для себя возможно. Хотя я предполагаю что в большинстве случаев "возврат" к заказчикам происходит не по причине селекторов, а из за ошибки в логике или еще каком затыке либо в т.з. со стороны заказчика или же новым обстоятельствам, возникшим в процессе работы скрипта.

    Две секунды на селектор это конечно сильно, у меня секунд 5 только уходит на открытие панели разработчика и поиск элемента глазами в коде) Я в таких случаях это делаю в хроме с помощью расширений для xpath а не в басе. Ты ими пользуешься? Если да то какое порекомендуешь?

  • @serrgo я тоже стараюсь писать максимально короткие и универсальные селекторы. Чаще использую css просто синтаксис короче, если нужно что-то по сложнее то xpath. Если хорошо знаешь синтаксис то селекторы пишешь так же как слова в предложение ))

    ПС: Иногда захожу почитать чаты и темы на формух с обсуждением платных скриптов на бас и постоянно вижу в скринах от юзеров кучи ошибок из-за плохо составленных селекторов.

  • @serrgo said in как выбрать тип селектора элементов по умолчанию ?:

    @Fox Хм тогда понятно, я так и думал. Когда пишешь не для себя возможно. Хотя я предполагаю что в большинстве случаев "возврат" к заказчикам происходит не по причине селекторов, а из за ошибки в логике или еще каком затыке либо в т.з. со стороны заказчика или же новым обстоятельствам, возникшим в процессе работы скрипта.

    Я старался свести к минимуму допиливание скрипта после продажи, стойкие селекторы лишь часть подобной практики

    Две секунды на селектор это конечно сильно, у меня секунд 5 только уходит на открытие панели разработчика и поиск элемента глазами в коде) Я в таких случаях это делаю в хроме с помощью расширений для xpath а не в басе. Ты ими пользуешься? Если да то какое порекомендуешь?

    Я пишу селекторы сам, изучил когда то xpath по мануалу, который скинули здесь же - на форуме:
    https://docs.google.com/document/d/1PdfKMDfoqFIlF4tN1jKrOf1iZ1rqESy2xVMIj3uuV3g/pub

    Так же пишу сам и регулярные выражения, их как и xpath достаточно один раз изучить, что бы потом быть уверенным в своём коде. Xpath и регулярки я бы назвал обязательным к изучению, эти знания пригождаются в работе очень часто.

  • @Fox Тема интересная, меня лично всегда интересуют вопросы оптимизации рутины, и прочего упрощения и убыстрения процессов, создание для похожих задач в дальнейшем функций, заготовок, для программирования написание своего фреймворка и прочее. Именно по этой причине у меня голый скрипт на БАС занимает больше мегабайта, там постоянно пополняемые функции для работы с почтой, инициализация переменных, генерация логинов и прочее. И уже поверх на этот шаблон я записываю свежий скрипт. Вообще по хорошему это все в отдельной теме обсудить бы, очень интересно и полезно было бы обменяться с единомышлинниками, у которых тоже есть тяга в сторону оптимизации процессов.

    По поводу регулярок к примеру, не смотря на то что я их знаю более менее, мне проще открыть вот эту тулзу:

    Она закрывает вопрос с регулярками в 95% случаев за секунды буквально.

    И еще момент. Если вас не устраивают селекторы, которые составляет БАС по умолчанию, вместо того чтобы каждый раз вручную править, предложите разработчику иной алгоритм их генерации, чтобы короче были. Мне допустим нравится, какие селекторы составляет плагин для хрома katalon recorder. А еще лучше, чтобы не сломать то что работает уже, сделать возможность кастомизировать алгоритмы для каждого типа селекторов.

  • Тема интересная, я лично никогда не использую предложенные селекторы тоже. Тип CSS тоже юзаю редко. Тут либо MATCH, либо XPATH.
    MATCH более универсален, но по дефолту в него нельзя загнать логические операторы, чего не сказать по XPATH где можно задавать "ИЛИ" и "И". Чтобы корректно определить селектор, нужно конечно же изучить html-код изнутри. Я лично не цепляюсь к классам, т.к. они могут быть общие для всех, чаще всего задают какой-то графический стиль, и завтра, поменяв дизайн, верстальщики могут этот класс куда-то сдвинуть или вообще убрать. Как правило неизменными остаются атрибуты name, id, title, aria-label, особенно атрибут name (тот, кто знаком с бэкэндом, понимает, почему его меняют в самую последнюю очередь). Поэтому мой селектор чаще выглядит кусочным, например таким:

    >MATCH>id="thisName"
    

    Я не захватываю даже название тега, потому что очень часто встречался с тем, что полностью сохраняется внутренность, а именно тег меняется, например с <div> на <span> или <p>. Поработав с гуглом, я понял одно: как не изощряйся, твои селекторы будут недолгосрочны, поэтому я написал себе модуль, который проверяет существование одного элемента, перебирая все возможные варианты: поиск по MATCH, XPATH, КАРТИНКЕ в base64. И я загоняю, например, туда штук 20 возможных вариаций одного и того же селектора, таким образом, если отлетел код, то base64 визуальность мог не поменять. Всем советую такой модуль себе запилить :)

  • @olegtut Так чего б тебе его тут же на форуме и не выложить? С первого взгляда не особо сложная тулза, особо смысла её прятать нету. Но вот время другим всё же сэкономишь)

  • @serrgo said in как выбрать тип селектора элементов по умолчанию ?:

    @Fox Вы для прямо меня новую вселенную открыли.. У меня опыт автоматизации достаточно большой и да, бывает что сайт мудрит с айдишниками или именами элементов в целях защиты от автоматизиций, тут да приходится ручками менять. Но в случае, когда к примеру я сделал запись действий на форме регистрации к примеру и у меня все работает, ЗАЧЕМ мне туда лезть и править селекторы, если прогон скрипта удачный?? Чтобы скрипт был "красивый" с коротенькими няшными селекторами? Так чтобы на века все стабильно работало? Почему не решать проблемы по мере поступления, не работает какой то элемент (не кликает, не находит, не вставляет, не то выбирает) тогда уже и лезешь смотришь/правишь. Я сам стараюсь избавляться от излишнего перфекционизма, но тут вы меня переплюнули ребята)

    Дело не в красоте кода, а в качестве скрипта. Иногда BAS предлагает нормальные селекторы, а бывает с вложениями "child". В первом случае можно быть уверенным что скрипт у всех пользователей будет работать одинаково, во втором же такого нет. Бывает сайт меняет расположение блоков из за разного разрешения экрана или же просто добавят какой нибудь баннер, что не редкость для разных регионов. Конечно можно оставлять все как есть, но тогда высока вероятность что скрипт придется часто переделывать, вместо того чтобы сразу привязаться к конкретному селектору, все таки их меняют не так часто. Лично для меня лучшим вариантом является MATCH, там и по тексту можно найти и вписать туда тот же селектор, CSS можно брать из того что предлагает BAS, XPATH использую гораздо реже, так же можно и комбинировать это все, чаще всего с AT.

    @Dasium По теме: https://wiki.bablosoft.com/doku.php?id=ru:how_to_search_for_element

  • @olegtut " который проверяет существование одного элемента, перебирая все возможные варианты: поиск по MATCH, XPATH, КАРТИНКЕ в base64. И я загоняю, например, туда штук 20 возможных вариаций одного и того же селектора, таким образом, если отлетел код, то base64 визуальность мог не поменять. Всем советую такой модуль себе запилить :)"

    так что пришлите нам этот модуль :D

  • Можно и через Foreach, у меня он в одном Скрипте например Ссылки ищет из нескольких, работает так то тож Быстро.
    По Сути и Селекторы в Файл можно насобирать и прогонять через него.
    alt text

  • @DoctorKrolic said in как выбрать тип селектора элементов по умолчанию ?:

    Так чего б тебе его тут же на форуме и не выложить?

    @Dasium said in как выбрать тип селектора элементов по умолчанию ?:

    так что пришлите нам этот модуль

    Выложу скоро