2016-04-01 6 views
0

私はJavaでphantomjsドライバを起動するアプリケーションを作成しました。OSXのjava .appからPhantomjsドライバを起動できません

次の行で日食から起動したときに私のプログラムが正常にphantomjsドライバを作成します。

enter image description here

"MainJar.jar":

DesiredCapabilities desireCaps = new DesiredCapabilities(); 
desireCaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, directory + "/phantomjs"); 
desireCaps.setCapability("phantomjs.cli.args", Collections.singletonList("--ignore-ssl-errors=true")); 
desireCaps.setCapability("phantomjs.page.settings.userAgent", "Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0"); 
driver = new PhantomJSDriver(desireCaps); 

私のような.APPを作成 "launcher"は基本的にjava -jar MainJar.appを実行するバッチで、 "phantomjs"はセレンのphantomjs公式実行ファイルです。

私は「.appを」からアプリケーションを起動すると、私はdriver = new PhantomJSDriver(desireCaps);に次のエラーを取得する:

は、新しいセッションを開始できませんでした。考えられる原因は、リモートサーバーの無効なアドレスまたはブラウザの起動に失敗したことです。 ビルド情報:バージョン: '不明'、改訂: '不明'、時刻: '不明' システム情報:ホスト: 'Air-de-Me'、ip: 'XXX.XXX.X.XX'、os.name : 'マックOS X'、os.arch: 'x86_64版'、os.version:'10 .10.5' 、のjava.version: '1.8.0_73' ドライバー情報:driver.version:PhantomJSDriver

しかし、 「ランチャー」スクリプトを起動してアプリケーションを実行すると、アプリケーションはドライバーを正常に作成します。私の最初のことは、パスが正しく設定されていないため、 "app"がphantomjsドライバを見つけることができなかったことですが、私は(phantomjs_file).exists();をログに記録して正しく見つけました。

権限エラーを除外するために、私は自分のアプリ内のすべてのファイルとアプリ自体にchmod 777を設定しました。

ブラウザが初期化できなかった理由はありますか?

どのようなヘルプも大歓迎です。

答えて

1

私は私の問題の答えを見つけました。問題は、phantomjsが ".app"から実行すると、独自のログファイルを作成する権限を取得できなかったことです。

私はphantomjsログ-足すを無効にするには、方法(私のために働いた唯一の方法)を発見した:

driver = new PhantomJSDriver(new PhantomJSDriverService.Builder() 
     .usingPhantomJSExecutable(new File("PATH_TO_EXECUTABLE")) 
     .withLogFile(null).build(), 
     desireCaps); 
関連する問題