Как переписать скрипт под выполнение у посетителя в браузере?

Ссылка скопирована
1 ответ

Есть такой скрипт, отлично работающий при выполнении из консоли сервера, который по итогу выдает html код формы с страницы сайта.
Как переписать данный скрипт таким образом, чтобы его мог выполнить обычный посетитель из своего браузера, посетив страницу моего сайта?

const puppeteer = require('puppeteer'); const path = require('path');  (async () => {   const browser = await puppeteer.launch({ args: ['--no-sandbox'], headless: 'new' });   const page = await browser.newPage();    try {     // Перейти на страницу с формой     await page.goto('https://www.tinkoff.ru/payments/card-to-card/');     console.log('Navigated form');          // Ожидание 3 секунд     await page.waitForTimeout(3000);      // Заполнение полей формы     await page.type('input[name="cardNumber"]', '	2202207187345312');     await page.waitForTimeout(1000);          // Заполнение полей формы     await page.type('input[name="date"]', '0626');     await page.waitForTimeout(1000);      // Клик по кнопкам с определенным значением const valuesToClick = ['2', '2', '2']; // Значения для клика for (const value of valuesToClick) {   await page.$$eval('.Keyboard-module__key_EGeG2[data-value="' + value + '"]', buttons => {     buttons.forEach(button => button.click());   });   await page.waitForTimeout(300); // Пауза между кликами }     await page.waitForTimeout(1000);      // Получение всех полей с атрибутом name="cardNumber" const cardNumberFields = await page.$$('input[name="cardNumber"]');  // Проверка, что найдено более одного поля с атрибутом name="cardNumber" if (cardNumberFields.length > 1) {   // Заполнение поля формы вторым значением (второе поле)   await cardNumberFields[1].type('2202206407759229'); } else { } await page.waitForTimeout(1000);      // Заполнение полей формы     await page.type('input[name="moneyAmount"]', '1000');     await page.waitForTimeout(3000);  const submitButton = await page.$('button[type="submit"]'); if (submitButton) {   await submitButton.click(); }     // Подождать некоторое время на случай, если форма генерируется динамически     await page.waitForSelector('form input[name="creq"]', { timeout: 20000 });      // Получение и вывод полного HTML-кода формы в консоль     const formHTML = await page.evaluate(() => {       const form = document.querySelector('form input[name="creq"]').closest('form');       return form ? form.outerHTML : null;     }); if (formHTML) {       console.log('Form HTML:', formHTML);     } else {       console.log('Form with creq not found');     }          // Закрыть браузер     await browser.close();   } catch (error) {     console.error('An error occurred:', error);   } })();

const puppeteer = require('puppeteer'); const path = require('path'); (async () => { const browser = await puppeteer.launch({ args: ['--no-sandbox'], headless: 'new' }); const page = await browser.newPage(); try { // Перейти на страницу с формой await page.goto('https://www.tinkoff.ru/payments/card-to-card/'); console.log('Navigated form'); // Ожидание 3 секунд await page.waitForTimeout(3000); // Заполнение полей формы await page.type('input[name="cardNumber"]', ' 2202207187345312'); await page.waitForTimeout(1000); // Заполнение полей формы await page.type('input[name="date"]', '0626'); await page.waitForTimeout(1000); // Клик по кнопкам с определенным значением const valuesToClick = ['2', '2', '2']; // Значения для клика for (const value of valuesToClick) { await page.$$eval('.Keyboard-module__key_EGeG2[data-value="' + value + '"]', buttons => { buttons.forEach(button => button.click()); }); await page.waitForTimeout(300); // Пауза между кликами } await page.waitForTimeout(1000); // Получение всех полей с атрибутом name="cardNumber" const cardNumberFields = await page.$$('input[name="cardNumber"]'); // Проверка, что найдено более одного поля с атрибутом name="cardNumber" if (cardNumberFields.length > 1) { // Заполнение поля формы вторым значением (второе поле) await cardNumberFields[1].type('2202206407759229'); } else { } await page.waitForTimeout(1000); // Заполнение полей формы await page.type('input[name="moneyAmount"]', '1000'); await page.waitForTimeout(3000); const submitButton = await page.$('button[type="submit"]'); if (submitButton) { await submitButton.click(); } // Подождать некоторое время на случай, если форма генерируется динамически await page.waitForSelector('form input[name="creq"]', { timeout: 20000 }); // Получение и вывод полного HTML-кода формы в консоль const formHTML = await page.evaluate(() => { const form = document.querySelector('form input[name="creq"]').closest('form'); return form ? form.outerHTML : null; }); if (formHTML) { console.log('Form HTML:', formHTML); } else { console.log('Form with creq not found'); } // Закрыть браузер await browser.close(); } catch (error) { console.error('An error occurred:', error); } })();

Дополнительно:

Судя по прежнему вашу вопросу - вам стоит посмотреть в сторону php webdriver.

Ответы:

1. Отрисовать html форму.
2. Сделать обработчик формы на php.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Анна SEO Ответ

Для того чтобы переписать скрипт под выполнение у посетителя в браузере, необходимо использовать язык JavaScript. Вот пример того, как можно переписать скрипт на PHP для выполнения в браузере:

```html

Пример скрипта на PHP в браузере

Пример скрипта на PHP в браузере

// Ваш PHP скрипт, переписанный на JavaScript
var result = '';
for (var i = 1; i <= 10; i++) {
result += 'Число ' + i + '
';
}

document.getElementById('result').innerHTML = result;

```

В данном примере мы создали простой скрипт, который выводит числа от 1 до 10 в элемент с id "result" на странице. Вместо использования PHP цикла мы использовали цикл на JavaScript. Теперь этот скрипт может быть запущен в любом современном браузере без необходимости запуска на сервере.

Таким образом, чтобы переписать скрипт на PHP под выполнение в браузере, нужно переписать его на JavaScript и вставить его внутрь тега `` в HTML файле.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно