質問: Selenium::WebDriver.for :chrome, options: options ``` 上の、「docker環境のときのソース(エラーが出ないver)」で「headlessオプション」がある時エラーは出ないのですが、ヘッドレスのため画面が出てこず何も処理ができません。。。 動き的にdocker環境の時はヘッドレスオプションが必須なのか、と思っているのですがどうにかして画面に表示できるようにしたいです。 **質問内容** そもそも自分のやりたい「**ヘッドレスの画面を隠したやり方ではなく、スクレイピングしたいページを表示させたい**」というのはdocker環境ではできないのか。できる場合のやり方。または、全く別の問題なのか。ご存知の方、教えていただきたいです。 reCAPTCHAを自動で突破できるやり方があればヘッドレスでもいいんですけど。。。 dockerを動かしているホストのOSはmacOSCatalinaバージョン10.15 、dockerコンテナの中で動いてるOSはLinuxです。 *ここで質問させて頂くことが初めてのため至らぬ事がありましたら申し訳ありません。初学者で、独学のため質問のしかた等も間違っていたり、情報が足りないなどありましたら教えていただきたいです。よろしくお願いいたします。
回答: Selenium で試したわけではないのでこの回答が役に立つか分かりませんが、普通の Ubuntu などのイメージから作られたコンテナの中で起動された Google Chrome の GUI をホスト環境に出すためには、X Window System をホスト環境とつなげる必要があります。headless のときにはエラーが起きないということですので、このあたりでクラッシュしているのではないでしょうか。 で管理されているこの Dockerfile の起動オプションが参考になります。 また で管理されている selenium/node-chrome-debug イメージの Chrome には VNC を使って接続できるようになっているので、これを参考にイメージを作るのもアリかもしれません。