我正在使用 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>
这并不令人惊讶,js 怎么会出现在常规的 clojure 命名空间中?但是我如何使用这个(或任何其他)系统来生成我可以传递给的 Clojurescript(javascript)代码execute-script
?