1

Я использую PhantomJS через Python через Selenium + Ghostdriver.Открытые страницы асинхронно в браузере без браузера (PhantomJS)

Я ищу для загрузки нескольких страниц одновременно и для этого, я ищу метод async для загрузки страниц.

Из моих исследований PhantomJS уже живет в отдельном потоке и поддерживает несколько вкладок, поэтому я считаю, что единственный недостающий фрагмент головоломки - это способ загрузки страниц неблокирующим способом.

Любое решение будет приветствоваться, будь то простой метод Призрака, который я пропустил, минуя Ghostdriver и взаимодействуя непосредственно с PhantomJS или другим браузером без головы.

Спасибо за помощь и предложения.

Юваль

ответ

2

Если вы хотите обойти ghostdriver, то вы можете напрямую записать вашу PhantomJS скрипты в JavaScript или CoffeeScript. Насколько я знаю, нет способа сделать это с помощью selenium webdriver, за исключением разных потоков на выбранном вами языке (python).

Если вы недовольны этим, есть CasperJS, у которого больше свободы написания скриптов, чем с селеном, но вы сможете использовать только PhantomJS или SlimerJS.

+0

Спасибо за быстрый ответ. Я посмотрю на CasperJS. Еще одна идея, которую я использовал, - использовать execute_script_async WebDriver и просто дать ему кучу команд «window.location». Это что-то, что сработает? –

+0

Нет, потому что они выполняются на одной странице/вкладке, поэтому они перезаписывают друг друга. –

0

Я не совсем уверен в том, как сделать это с помощью Selenium/Ghostdriver специально, но если вы (или будущие читатели) могут касаться сценариев фантомные непосредственно, то решение просто:

page.open(newUrl, ...); 

Метод "page.open()" по умолчанию асинхронный и должен удовлетворять вашим потребностям. - Прошло некоторое время с тех пор, как вы задали этот вопрос, поэтому не уверены, нужна ли вам помощь больше. Но, опять же, для тех, кто может это прочитать позже, я надеюсь, что это поможет!

Смежные вопросы