Вызов функции JavaScript из класса Java (Groovy) - PullRequest
9 голосов
/ 24 апреля 2010

У меня есть функция javascript (очень большая!), Которая мне нужна для ее функциональности в классе Java (Groovy). Это простой календарь конвертер. Я могу переписать его в groovy, но просто хочу знать, можно ли вызвать функцию javascript из метода java (groovy)? Я полагаю, что у библиотек функционального тестирования, таких как селен и Canoo, должно быть что-то вроде этого, я прав? PS: я не хочу пробуждать реальный браузер, чтобы использовать его среду выполнения JS.

Спасибо

Ответы [ 2 ]

8 голосов
/ 24 апреля 2010

Как упоминалось в других ответах, можно использовать API сценариев , предоставляемый как часть пакета javax.script, доступного из Java 6.

Ниже приведен пример Groovy, который немного исполняет Javascript:

import javax.script.*

manager = new ScriptEngineManager()
engine = manager.getEngineByName("JavaScript")

javascriptString = """
obj = {"value" : 42}
print(obj["value"])
"""

engine.eval(javascriptString)  // prints 42

Нет необходимости вызывать браузер для выполнения Javascript при использовании API сценариев, но следует помнить, что специфичные для браузера функции (вероятно, связанные с DOM) не будут доступны.

0 голосов
/ 24 апреля 2010

Вы можете использовать Rhino , реализацию языка JavaScript в Java. Вот пример вызова функции JavaScript из java , но вы также можете сделать это из groovy.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...