MENU
  • ホーム
  • プログラミング
  • ワードプレス
    • プラグインプラグイン関連記事
    • 賢威賢威のカスタマイズ
    • CSSCSSの関連記事
  • サイト情報
    • プライバシーポリシー
  • ツール
    • メルエディター
    • フリマスパイダー – 疾風
    • フリマスパイダー
    • -ポイ活くんα-
  • お問い合わせ
あらゆるモノにHackする、探究者の読み物。
Let's Hack Tech
  • ホーム
  • プログラミング
  • ワードプレス
    • プラグインプラグイン関連記事
    • 賢威賢威のカスタマイズ
    • CSSCSSの関連記事
  • サイト情報
    • プライバシーポリシー
  • ツール
    • メルエディター
    • フリマスパイダー – 疾風
    • フリマスパイダー
    • -ポイ活くんα-
  • お問い合わせ
Let's Hack Tech
  • ホーム
  • プログラミング
  • ワードプレス
    • プラグインプラグイン関連記事
    • 賢威賢威のカスタマイズ
    • CSSCSSの関連記事
  • サイト情報
    • プライバシーポリシー
  • ツール
    • メルエディター
    • フリマスパイダー – 疾風
    • フリマスパイダー
    • -ポイ活くんα-
  • お問い合わせ
  1. ホーム
  2. プログラミング
  3. 言語別
  4. Python
  5. seleniumの起動時に黒いコンソールが立ち上がる問題の解決

seleniumの起動時に黒いコンソールが立ち上がる問題の解決

2020 7/22
Python
2019-08-25 2020-07-22
selenium

色々いじっていたら、全く同じコードで動かしているのにもかかわらず挙動が変わってしまうことって珍しくありません。

今回はPythonのseleniumでGoogleChromeを操作しようとしていたのですが、今までと全く同じソースコードで起動させようとすると、chromedriverのログコンソールが立ち上がる状況になってしまいました。

とりあえず解決したので、同じく困っている方のための解決策。

目次

状況:Chrome起動時にコンソールが立ち上がる

状況スクショ

こんな感じで、Chromeの起動前にコマンドプロンプトのようなログが出力されるコンソールが立ち上がります。

画像にも映っている通りもちろんheadressのオプションの状態でも、ゴリゴリコンソールが立ち上がるので、うっとおしいです。

解決:seleniumのファイルを直接編集する

きっかけは、環境変数が変わったこと、またはPythonのパッケージ一式を再インストールしたことのどちらかだろうという状況。

いずれにせよ、心当たりがありすぎて、明確な原因はさっぱりわかりません。

selenium自体にオプションのようなコマンドがあるのかと思ったんですが、調べても出てこない。

という事で、起動ファイルを直接編集することにしました。

編集するseleniumのファイル

C:-モジュールディレクトリ-site-packagesseleniumwebdrivercommonservice.py

モジュールをインストールしているディレクトリ内のseleniumフォルダ内にあります。

from win32process import CREATE_NO_WINDOW

当該ファイルの上の方にとりあえず上記コードを追加。追加モジュールのインポートですね。多分あると思いますが、万一ない人はpipで入れてください。

    def start(self):
        """
        Starts the Service.

        :Exceptions:
         - WebDriverException : Raised either when it can't start the service
           or when it can't connect to the service
        """
        try:
            cmd = [self.path]
            cmd.extend(self.command_line_args())
            self.process = subprocess.Popen(cmd, env=self.env,
                                            close_fds=platform.system() != 'Windows',
                                            stdout=self.log_file,
                                            stderr=self.log_file,
                                            stdin=PIPE,
                                            creationflags=CREATE_NO_WINDOW)  # 追記編集
        except TypeError:
            raise
...
...

startメソッド内。自分の環境では62行目付近から記載されていました。

編集個所は、上記のstartメソッド内 subprocess.Popen メソッド。

ここがChromeを起動させる箇所ですが、そこに先ほどインポートするようにしたモジュールの専用の引数を渡します。

creationflags=CREATE_NO_WINDOW

この引数を渡します。
改行するので、一行上の引数の末尾のカンマを忘れないでください。

まとめ

とりあえず、これで直ります。

Python
Python selenium
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (2件)

  • mobazou より:
    2020-07-16 16:12

    モジュールディレクトリのディレクトリがsite-packagesseleniumwebdrivercommonservice.pyとあり、ディレクトリが切られていないため、認識に時間がかかりました。区切ってもらえると今後の方が助かるかと思います。

    返信
  • mobazou より:
    2020-07-16 16:51

    たびたみ恐縮です。私初心者なので上記のform win32process ~の部分に必要なモジュールがpywin32であることがわかるのに試行錯誤で1時間ばかり時間を要してしまいました。諦めかけたところで試しにインストールするとできましたのでわかりましたが、知識がなくても実装できるよう。pywin32をインストールする旨を記載いただくと後の方が助かるかと思います。
    いずれにしても、この記事で大変助かりました。どうもありがとうございました。

    返信

コメントする コメントをキャンセル

email confirm*

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

シンプル美と機能性を両立させた、国内最高峰のWordPressテーマ『SWELL』
人気記事
  • IQテストいくつか受けてみました
    ネット上で信憑性がありそうなIQテスト、5種類まとめて受けた結果…
  • hayate
    メルカリの商品を世界最速で購入するためだけのアラートツール
  • 【Python】BeautifulSoupの使い方・基本メソッド一覧|スクレイピング
  • Pythonファイルのexe化
    【悲報】PyInstallerさん、300MBのexeファイルを吐き出すようになる
  • Amazon Echo アレクサのコマンドまとめ
    AmazonEchoの使い方とできる事、アレクサへの指示コマンド一覧
最近の投稿
  • PyQt5 QListWidget の item削除でtextBoxのフォーカスが奪われる2023-03-05
  • WordPressからのメールが届かない時の調査と解決法2023-02-27
  • 保護中: メルカリアラートツール「疾風」v22022-12-01
  • 保護中: メルカリアラートツール【疾風】カスタマイズオプション一覧2021-03-22
  • 保護中: メルカリアラートツール【疾風】インストール手順2021-03-22
目次
目次