Частичное вхождение текста в Xpath - возможно ли это в BAS?

Поддержка
  • Здравствуйте!
    Сейчас хочу настроить автозаполнение форм обратной связи на сайтах (универсальный).
    Столкнулся с проблемой, что на каждом сайте, например, поле INPUT указано по-разному, например:

    <input name="name" type="text">
    <input id="form-field-name" name="form_fields[name]" size="1" type="text">
    <input id="nameorder" name="name" type="text">
    <input name="your-name" size="40" type="text">
    <input name="your-name" size="40" type="text">
    <input name="name">
    <input autocomplete="no" id="your_name" type="text">
    <input name="name" type="text">
    <input id="name_f" maxlength="25" name="name" type="text">
    <input maxlength="150" name="Имя " type="text">

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

    Может подскажете, можно ли сделать универсальный код для xpath, чтобы если в input есть УПОМИНАНИЕ текста name, чтобы оно заполнялось автоматически?
    Может тут надо не xpath использовать, а что-то другое?

    Нашел вроде решение на другом форуме, но оно не работает почему-то, может как-то синтаксис не тот указываю?

    XPATH>//input[compare(@class,'name') >=0]

    Пожалуйста, подскажите, если кто-то знает, уже неделю ищу решение, пока безрезультатно((

  • @brotok как-то так должно сработать

    >XPATH> //input[contains(@*, 'name')]
    
  • @brotok

    >XPATH> //input[contains(@*, 'name')]
    

    Твоя задача не так решается. Можешь ложно-положительно левый input зацепить.

    У этого input в 85% случаев есть какой-нить текст, сначала в цикле пробегаешься по сайту и парсишь все тексты у этих инпутов (весь текст до родителя инпута) . Потом можно сравнить с массивом что получилось и если input содержит определенный текст (Введите телефон, Введите почту, Введите имя) и т.д, то уже начинать вводить в него интересующий тебе текст.

    Я так делал закрывашку куки, написание в чат сайте и т.д. Пробив 85%

  • @FastSpace Да, я сейчас как раз смотрю, у всех полей есть panceholder например "Имя", "Телефон". Я так понял, вы это имеете в виду?
    Может вы подскажете, как извлечь все input со страницы, чтобы дальше с ними уже работать?

  • @brotok Да, причем даже если в input не будет никаких упоминаний name или phone (а такие упоминания могут быть у предков например)
    Можно комбинировать.

    Итого крч
    Решение твоей проблемы зовут - Document.evaluate()
    https://developer.mozilla.org/ru/docs/Web/API/Document/evaluate

  • 0 Votes
    4 Posts
    392 Views
  • 0 Votes
    3 Posts
    551 Views
  • 0 Votes
    3 Posts
    564 Views
  • 0 Votes
    3 Posts
    548 Views
  • 0 Votes
    5 Posts
    856 Views