DimaLepel
@DimaLepel

Почему PhantomJS отправляет форму с пустыми полями?

Хочу протестировать форму. Нашел инструмент PhantomJS. Написал небольшой скрипт:
var webpage = require('webpage');

var page = webpage.create();

page.viewportSize = { width: 1920, height: 1080 };
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36';

page.open('http://m.tst/', function() {

  console.log('Start');
  page.render('before.jpeg', {format: 'jpeg', quality: '100'});
  
  page.evaluate(function() {
    document.getElementById('subject').value = 'Bot';
    document.getElementById('msg').value = 'TestBot';
    document.getElementById('submit').click();
  });

  page.render('after.jpeg', {format: 'jpeg', quality: '100'});
  console.log('End');  

  phantom.exit();
});

На скриншотах видно, что данные в поля формы вводятся. Но письмо, которое приходит, не содержит этих данных. Можно ли как-то решить эту проблему.
<?php
// Сообщение
$message = $_POST['msg'];
$subject = $_POST['subject'];

// На случай если какая-то строка письма длиннее 70 символов мы используем wordwrap()
$message = wordwrap($message, 70, "\r\n");

// Отправляем
mail('caffeinated@example.com', $subject, $message);
?>

<form id="form" class="form" action="/" method="post">
  <input id="subject" type="text" name="subject" value="">
  <input id="msg" type="text" name="msg" value="">
  <input id="submit" type="submit" value="Send">
</form>
  • Вопрос задан
  • 16 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
а - зачем он тебе? фантом сдох давно

юзай selenium headless [сюда любимый браузер]

есть Хром, файрфокс, Эдж, Яндекс, Вивальди и думаю много еще каких, не говоря об инструментах Вебчитеров навроде Сферы и прочих трехбуквенных
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы