Capybara/Poltergeist/PhantomJS используют page.evaluate_script для возврата элементов

В Selenium/Chromedriver можно выполнять произвольные селекторы jQuery и получать список нативных Selenium::WebDriver::Elements:

page.evaluate_script("$('.some_class')")

=> [#<Selenium::WebDriver::Element:0x1 id="...">, ...]

Когда я запускаю тот же селектор в Poltergeist/PhantomJS, я получаю следующее:

page.evaluate_script("$('.some_class')")

=> "(cyclic structure)"

Есть ли способ заставить Poltegeist/PhantomJS возвращать список элементов, эквивалентный Полтергейсту?

Я знаю о find(:css, ".some_class"), но я пытаюсь открыть интерфейс Angular getTestability для доступа к моделям, привязкам и т. д. из Capybara... см. capybara-ng, который работает только в Selenium.


person Joseph Siefers    schedule 09.03.2015    source источник
comment
Это, вероятно, нелегко выполнимо, потому что GhostDriver (реализация PhantomJS в WebDriver) работает в контексте страницы, и невозможно передать элементы DOM из контекста страницы наружу. Поэтому их нужно как-то сопоставить.   -  person Artjom B.    schedule 10.03.2015
comment
Вам нужно будет полностью написать тестовый скрипт в контексте страницы (в page.evaluate_script())   -  person Artjom B.    schedule 10.03.2015
comment
возможный дубликат Внедрение и использование Firebug-Lite с PhantomJS   -  person Paul Sweatte    schedule 20.07.2015
comment
Вы нашли решение этой проблемы? Потому что у меня точно такая же проблема, как у вас!   -  person Feytality    schedule 21.04.2016