私はWindows 7マシンで作業しています。RSelenium ライブラリから remoteDriver()$open() を実行し、ブラウザをバックグラウンドで実行する (つまり、表示しない) ことは可能ですか?
ありがとう
はい、可能です。のデフォルトのブラウザRSelenium
は Firefox です。ただし、それぞれのビネットで詳しく説明されてRSelenium
いるヘッドレスブラウジングもサポートしています。PhantomJS
PhanomJS
一般に、 Windows 7で活用するために必要なのは、
phantomjs.exe
のユーザーまたはシステム PATH 変数への追加エントリとしてフォルダ パスを追加します(例: )注:それ自体はパス仕様の一部ではありません。Environment Variable
C:\Program Files\phantomjs-1.9.7-windows
phantomjs.exe
デフォルトのブラウジング:
checkForServer()
startServer()
remDrv <- remoteDriver()
remDrv$open()
...
remDrv$quit()
remDrv$closeServer()
ヘッドレス ブラウジング:
pJS <- phantom()
remDrv <- remoteDriver(browserName = 'phantomjs')
remDrv$open()
...
remDrv$close()
pJS$stop()
コマンドライン引数と POODLE
に渡すことができるコマンドライン引数に注意してくださいphantom
。
たとえば、PhantomJS はデフォルトで SSLv3 を使用しますが、これは POODLE 以降、すべてのサーバーで推奨されていません。
回避策は、次のように呼び出すphantom
こと--ssl-protocol=tlsv1
です。
pJS <- phantom(extras = c('--ssl-protocol=tlsv1'))
タイミングの問題
PhantomJS でよく発生することの 1 つは、タイミングの問題です。PhantomJS は速すぎるため、Firefox や Chrome などのブラウザーで動作するコードは、PhantomJS では機能しません。
この問題Sys.sleep
は、異なるremoteDriver
コールの間にコールを配置することで解決できます。