Задать вопрос
@ikerya

[PhantomJS] Как назначить переменную в объекте window перед загрузкой web-страницы, чтобы эту переменную могли вызывать скрипты страницы?

Я уже пользуюсь длительное время это библиоткей, но тут проблема возникла. Как оказалось, эта библиотека не поддерживает видео и аудио (HTML5 тэги). В принципе зачем они нужны на эмуляторе браузера. Но при попытке загрузить страницу, которая использует эти теги, возвращается ошибка (ReferenceError: Can't find variable: Audio), и далее на страницу JS выполнить невозможно из-за нее.

Пытался менять переменную до page.open, но phantomjs по прежнему возвращал ошибку. Мой код:

var page = require("webpage").create();

page.open("http://95.183.11.171/ph.php", function(status) {
    page.evaluate(function() {
        if (!window.Audio) {
            window.Audio = function() {
                return {
                    play: function() {},
                    pause: function() {}
                };
            };
        }
    });

    setTimeout(function() {
        phantom.exit();
    }, 1000);
});
  • Вопрос задан
  • 412 просмотров
Подписаться 2 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 1
@ikerya Автор вопроса
Нашел решение для изменения глобальных объектов страницы:

https://github.com/ariya/phantomjs/blob/master/exa...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы