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



  • есть ли способ выбрать тип селектора элементов по умолчанию при записи в прямом режиме с помощью "добавить действия в сценарий"?

    И есть ли способ изменить тип селектора элементов на несколько действий все вместе?

    Это было бы очень полезно.

    Бывает так, что запись с определенным типом селектора элементов выполняется так много раз, и через некоторое время BAS уже не находит много элементов и нужно менять тип селектора.

    /
    0fbbc67e-102a-449d-9dbc-7f2f8f201304-image.png



  • В большинстве случаев селектор нужно прописывать вручную и что по умолчанию выставил BAS не имеет особого значения



  • @GameBot Ты сейчас серьезно? Т.е. когда ты пишешь автоматизацию на БАС, ты большинство селекторов (клики, кнопки, поля) переписываешь в ручную? А зачем ты это делаешь, поумолчанию записанные действия не работают у тебя? Или я что то не так понимаю, но бывает иногда, что я вручную меняю селектор у некоторых элементов(не прописываю а именно меняю в выпадающем меню), в очень редких случаях, когда надо парсинг делать составляю вручную, но чтобы большинство селекторов прописывать вручную.. Это мания какая то чтобы вручную было сделано или что. Я не верю тебе если честно



  • @GameBot Но не во всех Случаех, есть Селекторы Годами не меняются и что теперь мол Каждый что ли подбирать, он один Хрен так же может Поменяться.
    Например я раньше через MATCH и Префикс >AT> подбирал.
    Но там с Нуля всё начинается, а в Селекторе CSS можно просто одну Цифру найти и туда, даже Ресурс воткнуть, вот вам мол и с одного начало.
    Икспат Конечно Лучше то, но по Сути, тем более как сейчас, не надо на Сразу элемент то жать, а можно по Счёту ещё Вычислить Корень его.
    В том же Гугле, там есть Селекторы, на который навёл и потом сколь клавишой Считаешь и он один а внутрених может до 8 ми штук..
    На Обум то это не дело просто, вот они Селекторы и Подбераются и создаются, в поиске где сам Корень Зла мол :)))



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

    @GameBot Ты сейчас серьезно? Т.е. когда ты пишешь автоматизацию на БАС, ты большинство селекторов (клики, кнопки, поля) переписываешь в ручную? А зачем ты это делаешь, поумолчанию записанные действия не работают у тебя? Или я что то не так понимаю, но бывает иногда, что я вручную меняю селектор у некоторых элементов(не прописываю а именно меняю в выпадающем меню), в очень редких случаях, когда надо парсинг делать составляю вручную, но чтобы большинство селекторов прописывать вручную.. Это мания какая то чтобы вручную было сделано или что. Я не верю тебе если честно

    Я ни когда не использую автоматически созданные селекторы, только если для тестового скрипта на форум. BAS создаёт селектора автоматически по порядку html элементов каждый раз при заходе на страницу, то есть велика вероятность, что при любых мелких, внутренних изменениях кода html страницы такой селектор перестанет работать.
    Писать селектор самому нужно потому что нет универсального решения привязки селектора к необходимому элементу, нужно найти в ручную статичный атрибут элемента или родительского элемента и выполнить привязку к нему.

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

    есть ли способ выбрать тип селектора элементов по умолчанию при записи в прямом режиме с помощью "добавить действия в сценарий"?

    И есть ли способ изменить тип селектора элементов на несколько действий все вместе?

    Это было бы очень полезно.

    Бывает так, что запись с определенным типом селектора элементов выполняется так много раз, и через некоторое время BAS уже не находит много элементов и нужно менять тип селектора.

    /
    0fbbc67e-102a-449d-9dbc-7f2f8f201304-image.png

    Такого функционала нет в BAS, предложенный селектор является привязкой к классу элемента, что тоже весьма не надёжно



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



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

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

    Я не навязываю ни кому свою точку зрения, каждый делает что хочет и пишет как ему нравится. Я лишь делюсь опытом.. Было время когда я плотно сидел на фрилансе и писал по 4-5 скриптов одновременно, для меня было важно сделать скрипт для заказчика и забыть про него, что бы не возвращаться к этому скрипту через неделю и не вносить правки.
    Я бы назвал себя ленивым человеком, я делаю сразу хорошо не потому что мне нужен "красивый" скрипт, а потому что мне лень потом его переделывать. При более-менее нормальном знании xpath селектор пишется за две секунды



  • @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 как выбрать тип селектора элементов по умолчанию ?:

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

    Выложу скоро


Log in to reply