Я написал небольшой фрагмент JS, который нажимает на кнопки в DOM определенного целевого сайта в цикле. Чтобы запустить этот фрагмент, я открываю целевой веб-сайт в Firefox. Затем я вставляю этот фрагмент JS в консоль и позволяю ему делать свою работу. PFA образец фрагмента ниже.

Теперь проблема в том, что я хочу автоматизировать весь этот процесс, чтобы не открывать Firefox каждый день. Я просто хотел бы написать cron, чтобы делать это ежедневно, и все должно происходить в фоновом режиме. Мне нужно развернуть это на облачной виртуальной машине Linux без графического интерфейса.

Есть идеи о том, как мне поступить? (Я уже знаю, что могу использовать бэкэнд-API веб-сайта, тем самым обходя все манипуляции с DOM. Но я хотел бы изучить другие варианты.)

PS: пример кода, который я ввожу в консоль инструментов разработчика Firefox:

func = setInterval(function () {
    // Some button that I want to click.
    document.evaluate("/html/body/div[1]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.click();

    // TODO: A break condition (or not)
}, 6000);

1 ответ1

1

Я бы посоветовал вам отказаться от того, чем вы занимались до сих пор, и научиться использовать Selenium.

Selenium в значительной степени является отраслевым стандартом, когда мы тестируем веб-приложения, и позволяет автоматизировать взаимодействие с браузером (по сценарию).

Selenium автоматизирует браузеры. Это оно! То, что вы делаете с этой силой, полностью зависит от вас. Прежде всего, это для автоматизации веб-приложений в целях тестирования, но, безусловно, не ограничивается только этим. Скучные веб-задачи администрирования могут (и должны!) быть автоматизированным.

Selenium пользуется поддержкой некоторых крупнейших поставщиков браузеров, которые предприняли (или предпринимают) шаги, чтобы сделать Selenium встроенной частью своего браузера. Это также основная технология в бесчисленных других инструментах автоматизации браузеров, API-интерфейсах и инфраструктурах.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .