如何使用phantomjs设置clj-webdriver 0.7.2

时间:2016-06-01 22:04:22

标签: java selenium clojure webdriver

我一直在尝试设置phantomjs来创建一个web scraper,但我无法让驱动程序工作。我添加了lein依赖项,如下所示:

  [org.seleniumhq.selenium/selenium-server  "2.47.1"]                                                                                      
  [com.codeborne/phantomjsdriver  "1.2.1"
    :exclusions [org.seleniumhq.selenium/selenium-java
    org.seleniumhq.selenium/selenium-server
    org.seleniumhq.selenium/selenium-remote-driver]]

然后在我的剧本中:

   (ns vendors-api.routes.scrapers.resource
     (:require [clj-webdriver.core :refer [new-webdriver]])
     (:import                                                                                                                                                
       (org.openqa.selenium.phantomjs PhantomJSDriver)
       (org.openqa.selenium.remote DesiredCapabilities)))

   (def driver 
    (new-webdriver
      {:browser (PhantomJSDriver. (DesiredCapabilities. ))}))

我一直收到以下错误:

CompilerException java.lang.reflect.InvocationTargetException, compiling

我错过了什么?

2 个答案:

答案 0 :(得分:1)

我希望您的依赖项不正确/不完整。

以下依赖列表对我有用:

[clj-webdriver "0.7.2"]
[org.seleniumhq.selenium/selenium-java "2.51.0"]
[com.codeborne/phantomjsdriver "1.2.1" :exclusions [org.seleniumhq.selenium/selenium-java]]

然后

(require ' [clj-webdriver.core :as driver])
(def my-driver (driver/new-driver {:browser :phantomjs}))

答案 1 :(得分:0)

问题中陈述的依赖关系是正确的。

使脚本在脚本中起作用的最终设置如下:

(:require [clj-webdriver.taxi :as taxi])

(System/setProperty  "phantomjs.binary.path"  "/path/to/binary")

(taxi/with-driver {:browser :phantomjs} (forms-to-evaluate)...)

希望这有助于其他人