Получение заголовка страницы в PhantomJS
Я экспериментирую с PhantomJS. Вот простой код, который не работает, как ожидалось. После запуска я вижу в консоли success
а также foo
но заголовок документа - пустая строка.
var page = require('webpage').create();
page.open('https://www.google.com', function(status) {
console.log("Status: " + status);
if(status === "success") {
console.log("foo");
console.log(document.title);
phantom.exit();
}
});
1 ответ
Решение
Самый простой способ получить название - использовать page.title
,
Причина document.title
не дает вам ничего, потому что PhantomJS имеет два различных контекста. Только контекст страницы (внутри page.evaluate()
) имеет доступ к DOM и, следовательно, document
объект. Внешний контекст также имеет document
объект, но он ничего не делает и поэтому является лишь фиктивным объектом. То же самое касается window
,
Таким образом, другой способ получить заголовок страницы - использовать:
console.log(page.evaluate(function(){
return document.title;
}));