• Каким образом можно экспортировать текст в поле ввода на странице Google Chrome через расширение?

    Dr_Elvis
    @Dr_Elvis
    В гугле забанен
    Ух! Это было одно из первых моих расширений. Нужно было по работе тестировать формы и каждый раз вводить одно и тоже было не вариант. У меня без расширения уходило пару часов чтобы протестировать 18 форм. С расширением я это делал за 8 минут.
    Что тебе нужно:
    1) создать manifest.json, в котором указать достаточно стандартный набор данных. Не забудь сделать ограничение в content_scripts matches на домен, по типу такого *://example.com/* чтобы твое расширение не срабатывала на всех сайтах подряд.
    2) файл скрипта на js. Его ты подключаешь в манифесте выше. В самом скрипте прописываешь вставку данных после загрузки страницы. Например:
    function insertit(){
        document.getElementById('idinput').value = 'Hello World!';
    }
    document.addEventListener('DOMContentLoaded', insertit);

    3) Нужны иконки твоего расширения, но тут думаю разберешься.
    Всё, это минимум который необходим. При полной загрузке страницы будет запущен скрипт который найдет текстовое поле с ID idinput и вставит туда Hello World!.
    Если у тебя несколько разных форм на разных страницах и нужно вставлять в каждую свои данные, то можно добавить условие на window.location.pathname, например так:
    function insertit(){
        if(window.location.pathname == '/page1'){
            document.getElementById('idinput').value = 'Hello';
        }
        if(window.location.pathname == '/shop.php'){
            document.getElementById('idinput').value = 'World!';
        }
    }
    document.addEventListener('DOMContentLoaded', insertit);

    А дальше - что угодно придумывать. Можно добавить кнопку на страницу поверх всего с абсолютным позиционированием, и сделать чтобы только после её нажатия вставлялись данные. Можно вообще автоматизировать и чтобы автоматом нажимались чекбоксы и кнопки. В общем дальше только полет твоей фантазии.
    Ответ написан
    Комментировать
  • Каким образом можно экспортировать текст в поле ввода на странице Google Chrome через расширение?

    vovka3003
    @vovka3003
    Фрилансер. Инженер систем безопасности.
    Это можно сделать с помощью Selenium или через ChromeDriver.
    Если расширением, приходит на ум вариант:
    указать в расширении нужный хост, запускать Chrome с url вида "адрес?имя_поля=значение&..., в "run_at": "document_idle" парсить url, искать элементы на странице, заполнять...
    Правда не проверял насколько "резиновым" получится входной путь (у винды свои ограничения)

    upd: Добрался до компа, набросал:

    manifest.json
    {
      "manifest_version": 3,
      "name": "Тест",
      "description": "Тест заполнение поля",
      "version": "1.0.0",
       "content_scripts": [
           {
               "matches": [ "https://*.google.ru/webhp?*" ],
               "js": [ "app.js" ],
    		   "run_at": "document_idle"
           }
     ]
    }


    app.js
    var sp = new URLSearchParams(location.search);
    document.getElementsByName('q')[0].value = sp.get('poisk');


    Запуск chrome:
    chrome.exe "https://www.google.ru/webhp?poisk=Котики ржака"


    Результат:
    sEw1Y4W.png
    Ответ написан
    4 комментария