皆さん、こんにちは。
いくつかの Ruby スクリプトを自動化してヘッドレスにする作業を行っています。私の最初のアプローチは、Watir とその PhantomJS モジュールを試すことでした。私たちのローカル テスト環境では、一部のブラウザーでエラーが発生することがわかっている自己署名証明書を使用しています。PhantomJS に ignoreSSLerrors オプションがあることは知っていますが、PhantomJS ドライバーがそれを使用するように指定する方法がわかりません。ヘッドレス ブラウザーの phantom-js セッションを問題なく作成できますが、自己署名証明書を使用して Web ページに移動しようとすると、何も表示されません。エラーもテキストも、ページが読み込まれなかった理由も示されません。
基本的には、次のようになります (odysseyURL は、別の場所で Firefox が問題なく読み込める文字列 URL として定義されています)。
irb(main):035:0* driver = Watir::Browser.new :phantomjs
PhantomJS is launching GhostDriver...
[INFO - 2013-12-05T15:48:49.998Z] GhostDriver - Main - running on port 8910
[INFO - 2013-12-05T15:48:50.219Z] Session [bc1bd280-5dc4-11e3-8b99-7bac3d2f1d15]
-_decorateNewWindow - page.settings{"XSSAuditingEnabled":false,
"javascriptCanCloseWindows":true,"javascriptCanOpenWindows":true,"
javascriptEnabled":true,"loadImages":true,"localToRemoteUrlAccessEnabled":false,
"userAgent":"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/534.34 (KHTML, like
Gecko) PhantomJS/1.9.2 Safari/534.34","webSecurityEnabled":true}
[INFO - 2013-12-05T15:48:50.252Z] Session [bc1bd280-5dc4-11e3-8b99-7bac3d2f1d15]
- page.customHeaders: - {}
[INFO - 2013-12-05T15:48:50.262Z] Session [bc1bd280-5dc4-11e3-8b99-7bac3d2f1d15]
- CONSTRUCTOR - Desired Capabilities:{"browserName":"phantomjs","version":"",
"platform":"ANY","javascriptEnabled":true,"cssSelectorsEnabled":true,
"takesScreenshot":true,"nativeEvents":false,"rotatable":false}
[INFO - 2013-12-05T15:48:50.283Z] Session [bc1bd280-5dc4-11e3-8b99-7bac3d2f1d15]
- CONSTRUCTOR - Negotiated Capabilities: {"browserName":"phantomjs","version":
"1.9.2","driverName":"ghostdriver","driverVersion":"1.0.4","platform":
"windows-8-32bit","javascriptEnabled":true,"takesScreenshot":true,"handlesAlerts":
false,"databaseEnabled":false,"locationContextEnabled":false,
"applicationCacheEnabled":false,"browserConnectionEnabled":false,
"cssSelectorsEnabled":true,"webStorageEnabled":false,"rotatable":false,
"acceptSslCerts":false,"nativeEvents":true,"proxy":{"proxyType":"direct"}}
[INFO - 2013-12-05T15:48:50.327Z] SessionManagerReqHand -
_postNewSessionCommand - New Session Created: bc1bd280-5dc4-11e3-8b99-7bac3d2f1d15
=> #<Watir::Browser:0x73fac05c url="about:blank" title="">
irb(main):036:0>
irb(main):037:0* =begin
<en processed and works headless. Everything below is still being modified
irb(main):039:0= =end
irb(main):040:0*
irb(main):041:0* driver.goto(odysseyURL)
=> "about:blank"
irb(main):042:0> puts(driver.text)
=> nil
irb(main):043:0> puts(driver.html)
<html><head></head><body></body></html>
=> nil
私は、Watir と Ghostdriver の両方でこのようなドキュメントを検索して調査しましたが、役に立ちそうなものはほとんど見つかりませんでした。
任意の支援をいただければ幸いです、mpozos