May 23, 2022

Знайомство з tampermonkey

Сьогодні ми будемо вчити tampermonkey.
Скачати для Chromium-ів його можна тут.
Тепер розбираєм скрипт.

// ==UserScript==
// @name         Crypto Pidval test
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Test script
// @author       https://t.me/cryptopidval
// @match        https://www.google.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=google.com
// @grant        none
// ==/UserScript==

@name це назва скрипта.
@description це опис.
@version це версія скрипта.
@author це автор скрипта.
@match це як має виглядати посилання * це будь-які посилання.
@icon це іконка.

function simulateMouseClick(targetNode) {
    function triggerMouseEvent(targetNode, eventType) {
        var clickEvent = document.createEvent('MouseEvents');
        clickEvent.initEvent(eventType, true, true);
        targetNode.dispatchEvent(clickEvent);
    }
    ["mouseover", "mousedown", "mouseup", "click"].forEach(function(eventType) {
        triggerMouseEvent(targetNode, eventType);
    });
};

Функція що симулює кліки на javascript.
Вона бере просто наш об'єкт і трігерить івенти(як зміг пояснив, дякую добрим людям зі stackoverflow за код).

function getElementsByXPath(xpath, parent)
{
    let results = [];
    let query = document.evaluate(xpath, parent || document,
        null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
    for (let i = 0, length = query.snapshotLength; i < length; ++i) {
        results.push(query.snapshotItem(i));
    }
    return results;
};

Штука яка шукає елементи за xpath(його ви можете знати з selenium).
По факту шукає за xpath лише document.evaluate а інше конвертує його в нормальний list.

function main(){
    getElementsByXPath("//h3[@class='LC20lb MBeuO DKV0Md']").forEach(element=> {
        alert(element.textContent);
    });
};
Клас результатів.
Повідомлення з текстом про результат.

Основна функція.
Шукає всі результати далі через foreach проходить по всім елементам списку і показує його текст.

main();

Запускаєм основну функцію.

На цьому все.
Всім удачі!
Підготовлено каналом: https://t.me/cryptopidval