40199


GUIのアプリを作っています。  
その中でスクレイピングをするために  
chromedriverとseleniumを使ってHeadlessモードでChromeを動かしているのですが  
起動するとコンソールが開きchromedriverのログが表示されてしまいます  
GUIなので表示されないようにしたいのですがどうすればいいのでしょうか?

OS windows10  
Python 3.6.3  
Selenium 3.8  
Chrome Canary


CC BY-SA 3.0
2017-12-11T15:25:35.883
40196
2019-06-02T07:42:35.413
5246
question
python google-chrome windows-10 selenium
HeadlessモードでChromeDriverを起動したときにコンソールが表示されないようにする


C#での対策が以下のQ&A記事になっています。

[Hide/Silence ChromeDriver
window](https://stackoverflow.com/questions/35818436/hide-silence-
chromedriver-window)  
[Selenium+ChromeDriverで表示されてしまうコマンドプロンプトの画面を非表示で実行させたい
](https://groups.google.com/forum/#!topic/seleniumjp/PXFJTcdnx_0)  
[Selenium C# 4.0 release says you can hide the command prompt - how do you
actually do
it?](https://sqa.stackexchange.com/questions/7898/selenium-c-4-0-release-says-
you-can-hide-the-command-prompt-how-do-you-actual)

内容を抽出すると、以下になるでしょう。  
この処理をPythonで出来るようにすれば良いと思われます。

1.いったんChromeDriverServiceオブジェクトを作成する  
2.作成したChromeDriverServiceオブジェクトのHideCommandPromptWindowをtrueに設定する  
3.ChromeOptionsオブジェクトを作成する  
4.ChromeOptionsオブジェクトに（必要ならば他の引数と共に）引数"headless"を追加する  
5.ChromeDriverServiceオブジェクトとChromeOptionsオブジェクトをパラメータにして  
ChromeDriverオブジェクトを作成する  
6.作成したChromeDriverオブジェクトにて処理を行う

【追記】  
調査を続けましたが、Pythonでは上記処理が難しいのかもしれません。  
古いQ&A記事ですが、seleniumのソースコードを直接変更して、ChromeDriverを  
起動する際に非表示にする力技のようなものが出ていました。

[hide chromeDriver console in
python](https://stackoverflow.com/questions/33983860/hide-chromedriver-
console-in-python)

この質問そのものも、コンソールウインドウを見えない位置・サイズに  
変更しておく、という技を使っているようですが、終了後にウインドウ  
表示が復活するために質問しているようです。

* * *

**その後の状況**  
質問者さん自身が英語版S.O.で質問したようで、そこで解決していました。  
内容は@sa-yさん紹介の記事内容を汎用版(option追加)とすれば、目的特化型でしょうか。  
[How I can hide chromedriver log on console through selenium
p](https://stackoverflow.com/q/47755571/9014308)

他に、追記で紹介した記事に、追加の回答が付いていて、類似の処理が紹介されています。  
<https://stackoverflow.com/a/52883069/9014308>


CC BY-SA 4.0
2017-12-12T00:48:37.100
40199
2019-06-02T07:42:35.413
2019-06-02T07:42:35.413
26370
26370
40196
answer


以下のサイトにこのスクリプトにパッチを当てて、コンソール非表示で chromedriver
を起動するようなオプション(hide_console)を追加する、という方法がありました。

  * [Hide command prompt in Selenium ChromeDriver](https://stackoverflow.com/questions/48654427/solved-hide-command-prompt-in-selenium-chromedriver)
  * [selenium/webdriver/common/service.py](https://github.com/ITmasc/selenium/blob/05a5bb9e2dd603a0ee3ad05a94cc6063ff9c843b/py/selenium/webdriver/common/service.py)

こちらではうまく動くか確認しておりませんが、service.py を置き換えて試してみてはいかがでしょうか？


CC BY-SA 3.0
2018-02-16T06:35:53.233
41769
2018-02-16T07:49:32.083
2018-02-16T07:49:32.083
27410
27410
40196
answer