0

私は Geb を初めて使用し、さらに使用する前に簡単なテストを行って評価しようとしています。プロキシのアクセス許可などにより、Grape を使用せずにそうしたいと考えています。そのため、必要な jar ファイルを手動でダウンロードして、コマンド ラインで指定しようとしています。

ただし、そうすると、WebDriverException で次のクラスが見つかりませんでした。

C:\geb-test>groovy -cp geb-core-0.9.2.jar;selenium-htmlunit-driver-2.35.0.jar;selenium-support-2.35.0.jar GoogleTest
Caught: java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriverException
java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriverException
        at GoogleTest.run(GoogleTest.groovy:3)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.WebDriverException
        ... 1 more

C:\geb-test>

追加の瓶が必要ですか? もしそうなら、どれですか?他にもいくつか試しましたが、喜びはありませんでした.WebDriverExceptionがselenium-api-2.35.0.jarにあることに気づきましたが、違いはありませんでした。

したがって、いくつかのバージョン情報から始まる詳細は次のとおりです。

  • Groovy バージョン: 2.1.7 JVM: 1.7.0_40 ベンダー: Oracle Corporation OS: Windows 7

まず、 GoogleTest.groovyというファイルに記述した単純な geb インライン スクリプトの例を使用します。

import geb.Browser

Browser.drive {
    go "http://google.com/ncr"

    // make sure we actually got to the page
    assert title == "Google"

    // enter wikipedia into the search field
    $("input", name: "q").value("wikipedia")

    // wait for the change to results page to happen
    // (google updates the page dynamically without a new request)
    waitFor { title.endsWith("Google Search") }

    // is the first link to wikipedia?
    def firstLink = $("li.g", 0).find("a.l")
    assert firstLink.text() == "Wikipedia"

    // click the link 
    firstLink.click()

    // wait for Google's javascript to redirect to Wikipedia
    waitFor { title == "Wikipedia" }
}

次に、 geb のインストール手順に基づいて、 @ Grab アノテーションに記載されている jar があることを確認しました。これにより、テスト ディレクトリに次のファイルが作成されました。

07/11/2013  10:46    <DIR>          .
07/11/2013  10:46    <DIR>          ..
06/11/2013  14:51           460,165 geb-core-0.9.2.jar
06/11/2013  15:13               711 GoogleTest.groovy
06/11/2013  14:55            56,189 selenium-htmlunit-driver-2.35.0.jar
06/11/2013  14:54           130,535 selenium-support-2.35.0.jar
               4 File(s)        647,600 bytes

そして、完全を期すために、上記のコマンド ラインの実行を試みます。

C:\geb-test>groovy -cp geb-core-0.9.2.jar;selenium-htmlunit-driver-2.35.0.jar;selenium-support-2.35.0.jar GoogleTest
Caught: java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriverException
java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriverException
        at GoogleTest.run(GoogleTest.groovy:3)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.WebDriverException
        ... 1 more

C:\geb-test>

問題は、Groovy '-cp' コマンドラインを使用した複数の jar ではないかと考え始めています。${user.home}.groovy\lib ディレクトリに jar ファイルを配置しようとしています。しかし、その後、GebException の定義されていないクラスになってしまいます。これを機能させるには、Grape を使用する必要があるかもしれません。:/ お知らせ下さい。

4

1 に答える 1

1

さて、私は諦めて、プロキシ認証を強制的に機能させることにしました。

Chrome ドライバーで試すことにしたので、注釈は次のようになりました。

@Grapes([
    @Grab("org.gebish:geb-core:0.9.2"),
    @Grab("org.seleniumhq.selenium:selenium-chrome-driver:2.26.0"),
    @Grab("org.seleniumhq.selenium:selenium-support:2.26.0")
])

最終的な結果として、重要な依存関係チェーンが存在するため、手動で試行することはお勧めできません。そうしたい場合は、以下を使用してクラスパスを準備してください。

そして、空のグレープリポジトリから移動すると、これになりました(「グレープリスト」で表示):

  • cglib cglib-nodep [2.1_3]
  • com.google.guava グアバ [13.0.1]
  • com.google.guava グアバ-親 [13.0.1]
  • コモンズコーデックコモンズコーデック[1.6]
  • commons-logging commons-logging [1.1.1]
  • net.java.dev.jna jna [3.4.0]
  • net.java.dev.jna プラットフォーム [3.4.0]
  • org.apache Apache [4、7、9]
  • org.apache.commons commons-exec [1.1]
  • org.apache.commons commons-parent [17、22、5]
  • org.apache.httpcomponents httpclient [4.2.1]
  • org.apache.httpcomponents httpcomponents-client [4.2.1]
  • org.apache.httpcomponents httpcomponents-core [4.2.1]
  • org.apache.httpcomponents httpcore [4.2.1]
  • org.apache.httpcomponents プロジェクト [6]
  • org.gebish geb-ast [0.9.2]
  • org.gebish geb-core [0.9.2]
  • org.gebish geb-implicit-assertions [0.9.2]
  • org.gebish geb-waiting [0.9.2]
  • org.json json [20080701]
  • org.seleniumhq.selenium セレン-api [2.26.0]
  • org.seleniumhq.selenium selenium-chrome-driver [2.26.0]
  • org.seleniumhq.selenium セレン親 [2.26.0]
  • org.seleniumhq.selenium selenium-remote-driver [2.26.0]
  • org.seleniumhq.selenium セレンサポート [2.26.0]
  • org.sonatype.oss oss-parent [7]
于 2013-11-07T23:05:48.083 に答える