Ответ 1
В учебном пособии Quick Start содержится важная информация (в разделе Оценка кода):
Чтобы оценить код JavaScript или CoffeeScript в контексте веб-страницы, используйте функцию оценки(). Выполнение "изолировано", для кода не существует доступа к каким-либо объектам и переменным JavaScript вне его собственного контекста страницы. Объект может быть возвращен из метода оценки(), однако он ограничен простыми объектами и не может содержать функции или замыкания.
Таким образом, проблема с вашим кодом двояка:
- Переменная
elem
инициализируется вне контекста веб-страницы, она недоступна для второгоevaluate
. - Вы возвращаете непростой объект, т.е. элемент DOM.
Это простая проблема для решения, главным образом, путем правильного проектирования кода, соответствующего реальной модели исполнения "под стражей". Пожалуйста, внимательно прочитайте всю соответствующую документацию и изучите тон включенных примеров.