1

ボタンをクリックした後に HTTP 呼び出しが失敗すると、すべてが失敗するという、phantomjs のゴーストドライバーに問題があるようです。

https://github.com/detro/ghostdriver/issues/202#issuecomment-19808784

この問題は修正され、メインブランチにあります。新しいファイルを参照し、phantomjs に含まれているゴーストドライバーを使用しない方法について説明します。

Java はこちら: https://github.com/detro/ghostdriver/issues/243

そして価値があるように見える

  PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY

しかし、それはC#には存在しません

だから試した

  var opts = new PhantomJSOptions(); 
  opts.AddAdditionalCapability("phantomjs.ghostdriver.path.property", "c:\\path\\src\\main.js");

しかし、行きません。phantomjs の出力にはまだ古いバージョンが表示されます


EDIT1:これは、設定できるphantomJSへのパスとは異なります

 PhantomJSDriverService.CreateDefaultService("c:\path\to\phantomjs.exe")

phantomjs 自体に含まれている Ghostdriver ではなく、Ghostdriver のローカル バージョンを使用するように phantomjs に指示しようとしています。


EDIT2:ここでJavaコードファイルを掘り下げます https://github.com/detro/ghostdriver/blob/master/binding/java/src/main/java/org/openqa/selenium/phantomjs/PhantomJSDriverService.java

Java 静的文字列を設定するコードを見つけました

 public static final String PHANTOMJS_GHOSTDRIVER_PATH_PROPERTY = "phantomjs.ghostdriver.path";

これは、上記で間違って設定していたことを意味しますが、修正しても機能しません

var opts = new PhantomJSOptions(); 
opts.AddAdditionalCapability("phantomjs.ghostdriver.path", "c:\\path\\src\\main.js");

暖かくなってきましたが……。

4

2 に答える 2

2

phantomjs exec パスを指定するには、少なくとも 2 つの方法があります。

PhantomJSDriverService で静的メソッドを使用する

var driver = new PhantomJSDriver(PhantomJSDriverService.CreateDefaultService("PHANTOMJSPATHHERE"));

PhantomJSDriver の適切なコンストラクターを使用します (文字列を取ります)

var driver = new PhantomJSDriver("PHANTOMJSPATHHERE");
于 2013-07-17T06:35:32.737 に答える