Ste*_*gle 10 clojure clojurescript
我正在使用clj-webdriver在Clojurescript Web应用程序上进行一些基于Selenium的测试.有时,应用程序本身中有一些东西,我希望在测试运行时能够摆弄它.我看到clj-webdriver有一些调用(execute-script js args)
它需要一串Javascript代码并在当前测试浏览器上运行它.我测试了这个,它似乎工作.我想传递clojurescript代码execute-script
.我需要一些能将我的Clojure表单编译成Clojurescript代码的东西.
我看到以下问题与此有关.它说要使用离合器的js/emit功能.我搜索了离合器,发现它只在cljs-views.clj中的(视图)中提到过我在repl中尝试了以下内容:
user> (use 'com.ashafa.clutch.cljs-views)
nil
user> view
<core$comp$fn__4034 clojure.core$comp$fn__4034@ebd3f80>
user> js/emit
CompilerException java.lang.RuntimeException: No such namespace: js, #compiling (NO_SOURCE_PATH:1)
user>
Run Code Online (Sandbox Code Playgroud)
这不是特别令人惊讶,js如何成为常规的clojure namesapce?但是如何使用这个(或任何其他)系统生成我可以传递给的Clojurescript(javascript)代码execute-script
?
使用该cljs.closure/build
功能:
(use '[cljs.closure :only [build]])
(build '(print "hello") {:optimizations :simple :pretty-print true})
Run Code Online (Sandbox Code Playgroud)
closure.clj底部的评论中有更多示例。还有用于输出到文件的选项。