Min*_*ure 28 integration-testing rspec ruby-on-rails capybara poltergeist
我在测试中有一个非常简单的行,它调用这样的执行脚本:
puts page.execute_script("return somefunction();").to_i.inspect
Run Code Online (Sandbox Code Playgroud)
在javascript中我有一个这样的函数:
function somefunction(){
console.log("test");
return 999;
}
Run Code Online (Sandbox Code Playgroud)
来自控制台日志的"测试"正在注销,因此它正在运行...
在运行测试时查看日志,execute_script返回0而不是999,所以在rspec中我无法获取函数的返回值,如何使page.execute_script从该函数返回该值?
Jus*_* Ko 42
Poltergeist驱动程序旨在返回nil execute_script:
def execute_script(script)
browser.execute(script)
nil
end
Run Code Online (Sandbox Code Playgroud)
如果您使用以下内容,吵闹者只会返回一个值evaluate_script:
def evaluate_script(script)
browser.evaluate(script)
end
Run Code Online (Sandbox Code Playgroud)
Capybara每个都有相应的方法 - 即Session#execute_script和Session#evaluate_script.如果你切换到使用你的代码应该工作evaluate_script(和@AndreyBotalov指出,你还需要删除return):
puts page.evaluate_script("somefunction();").to_i.inspect
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13444 次 |
| 最近记录: |