Ответ 1
Драйвер Poltergeist предназначен для возврата nil для execute_script
:
def execute_script(script)
browser.execute(script)
nil
end
Полтергейст вернет значение только в том случае, если вы используете evaluate_script
:
def evaluate_script(script)
browser.evaluate(script)
end
Capybara имеет соответствующие методы для каждого - т.е. Session#execute_script
и Session#evaluate_script
. Ваш код должен работать, если вы переключитесь на использование evaluate_script
(и, как указывает @AndreyBotalov, вам также нужно удалить return
):
puts page.evaluate_script("somefunction();").to_i.inspect