Почему Phantomjs не работает с этим сайтом? - PullRequest
0 голосов
/ 08 июня 2019

Я новичок в phantomjs и тестирую с версией 2.5.0-development. Я использовал скрипт screen.js, он хорошо работает с http://phantomjs.org и https://google.com но не работает с https://globo.com и https://uol.com.br Я не могу понять, что я делаю неправильно, никакой ошибки не появляется.

screen.js

var page = require('webpage').create();
page.open('https://www.globo.com', function() {
  page.render('globo.png');
  phantom.exit();
});

Edit: Я попробовал старую версию 2.1.1 и все заработало. Кажется, проблема в версии.

Ответы [ 2 ]

1 голос
/ 08 июня 2019

Как уже упоминалось на странице phantomjs - http://phantomjs.org/ - Разработка PhantomJS была остановлена, и на данный момент она в значительной степени устарела. PhantomJS в основном эквивалентен 6-7-летнему браузеру, не поддерживает много современных JS / CSS (let, const, flexbox, макет сетки и т. Д.) И имеет неприятную привычку не вызывать ошибки при неподдерживаемых функциях JS (например, let или const) используются в активе страницы и вместо этого просто игнорируют эти файлы JS. Вам будет гораздо лучше переключиться на что-то более современное, например, безголовый Chrome.

0 голосов
/ 08 июня 2019

Я думаю, вам нужно немного подождать, прежде чем страница загрузится. Попробуйте добавить установленное время ожидания, например:

var page = require('webpage').create();
page.open('https://www.globo.com', function() {
  setTimeout(function(){
     page.render('globo.png');
     phantom.exit();
  }, 5000); // Change timeout as required to allow sufficient time 
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...