0

SeleniumWebdriverを使用してCookieを設定してから読み取ろうとしています。Cookieの追加は正常に機能します。ただし、Cookieを読み込もうとすると、Seleniumによって例外がスローされます。

  1. Selenium用のJavaAPIを使用しています。
  2. テストケースは、TestNGを使用して実行されます。ver 5.12
  3. Seleniumwebdriver-htmlunitバージョン0.9.7376

テストケースコード

      import org.openqa.selenium.WebDriver;
      import org.openqa.selenium.Cookie;
      .
      .
      .
      WebDriver driver = ....
    // Now set the cookie. This one's valid for the entire domain

    Cookie testCookie = new Cookie.Builder("myCookie", "cookieValue").domain("localhost").path("/").build();
    //Works fine till here
    driver.manage().addCookie(testCookie);

    //breaks here
    String cookieFromBrow = driver.manage().getCookieNamed("myCookie").toString();
    System.out.println("Cookie :- [" + cookieFromBrow + "]");

スタックトレース

java.lang.NoSuchMethodError: org.openqa.selenium.internal.ReturnedCookie.<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Date;Z)V
at org.openqa.selenium.htmlunit.HtmlUnitDriver$HtmlUnitOptions.getCookies(HtmlUnitDriver.java:851)
at org.openqa.selenium.htmlunit.HtmlUnitDriver$HtmlUnitOptions.getCookieNamed(HtmlUnitDriver.java:812)
at com.medomain.site.test.SampleResultPageIntlITCase.initTestPage(SampleResultPageIntlITCase.java:150)
at com.medomain.site.test.SampleResultPageIntlITCase.testFindCaseForm(SampleResultPageIntlITCase.java:123)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:702)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:894)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1219)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:768)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
at org.testng.SuiteRunner.run(SuiteRunner.java:240)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:87)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1185)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1110)
at org.testng.TestNG.run(TestNG.java:1022)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:109)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:202)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:173)

どんな助けでも本当にありがたいです。

4

2 に答える 2

0

問題は、欠落しているように見えるgetSecure()メソッドです。org.apache.commons.httpclient.Cookie

あなたはJAR地獄に入ったようで、プロジェクト内のライブラリ/依存関係のいくつかはバージョン内で互いに競合していますorg.apache.commons.httpclient。使用するWebDriverにはバージョン3.1が必要です。プロジェクトへのすべての依存関係を確認し、問題のあるライブラリを見つけて、そのバージョンがhttpclient実際にクラスパスに組み込まれます。

2つのうち新しい方を使用してみてください-それでも問題が解決しない場合は、頑張ってください:)。

于 2012-06-07T08:40:43.153 に答える
0

私の解決策があなたに役立つかどうかはわかりませんが、試してみます。

同様の問題が発生しました...HtmlUnitWebdriverを使用していて、ファイルをダウンロードしたいのですが、WebDriverをCookiesStoreにリンクする必要がある場合、アプリが機能せず、エラーも例外も表示されません...

何度か検索してアプリをデバッグした後、HtmlUnitがいくつかのライブラリを内省してロードすることがわかりました...そのうちの1つはgson(私の場合はgson-2.3.1.jar)です(明らかに、私のプロジェクトはこのライブラリを必要としませんでした。 。 間違い!)。だから、私はこのライブラリを私のプロジェクトに入れました、そして出来上がり...すべて問題なく動作します。

お役に立てば幸いです

于 2015-05-06T17:44:34.443 に答える