【Python】エラー対策「システムに接続されたデバイスが機能していません。 (0x1F)」

プログラミング

エラー内容

PythonのVisual studio codeにおいて、SeleniumでGoogle cromeやMicrosoft edgeやFirefoxなどのウェブブラウザを自動操作や制御をしようとした際に、

「USB: usb_device_handle_win.cc:1054 Failed to read descriptor from node connection: システムに接続されたデバイスが機能していません。 (0x1F)」

というエラーコメントがでてきます。

このエラーは、特にプログラムが止まったりすることはなく、プログラムの動作上は影響ありません。しかし、ターミナルに非常に長いエラーログが残ってしまうため、視覚的に非常に邪魔となります。

今回はこのエラーの解決策をお伝えします。

解決策

解決策は、pythonのコードに赤字部分を追加することです。

■コード例

from selenium import webdriver
#selenium、webdriverの定義

from msedge.selenium_tools import Edge,EdgeOptions
#Edgeの定義

driver_url = r"C:\Users\mmiya\AppData\Local\Programs\Python\Python39\msedgedriver.exe"
#Edgeを制御するためのdriver.exe の保管場所の指定

options = EdgeOptions()
#Edge立ち上げ時の制約(Option)の定義

options.add_experimental_option('excludeSwitches', ['enable-logging'])
#これがエラーをなくすコードです。ブラウザ制御コメントを非表示化しています

options.use_chromium = True
#これがエラーをなくすコードです。WebDriverのテスト動作をTrueにしています

driver = Edge(executable_path=driver_url, options=options)
#driverをEdgeで開くコードです。その際にdriver.exeの保管場所の定義とoptions設定をしています

url = 'https://miya-mitsu.com/' 
#私のブログアドレスです

driver.get(url)
#私のブログアドレスをEdgeのアドレスバーに反映します

もしも、Edgeの定義のfrom msedge.selenium_tools import Edge,EdgeOptionsのところでエラーが出る場合は、MicroEdgeのツールがインストールされていないのが原因です。インストールしてください。やりかたは、コマンド プロンプトで、「pip install msedge-selenium-tools selenium == 3.141」と入力し、Enterでインストールできます。。

あと、MicroEdgeの起動で、「Message: session not created: This version of MSEdgeDriver only supports MSEdge version 92」とエラーが出る場合は、お使いのMicroEdgeブラウザに対して、Pythonで起動するdriverのversionが合致していないのが原因です。下記サイトにて、お使いブラウザと同じドライバーをダウンロードし、Pythonフォルダにdriverを上書きしてください。
https://developer.microsoft.com/ja-jp/microsoft-edge/tools/webdriver/

■ここからは解説です。

まず、「.add_experimental_option(‘excludeSwitches’, [‘enable-logging’])」というコードですが、これはブラウザを制御した際に表示される「自動テスト ソフトウェアによって制御されています」を非表示化しています。

.addのドットの前には、ブラウザオプションとして定義したものが入ります。

私は、Microsoft Edgeなので、options = EdgeOptions()と定義しているため、optionを.addの前に入れています。これより、options.add_experimental_option(‘excludeSwitches’, [‘enable-logging’])となります。


次に、「.use_chromium = True」というコードです。

こちらは、pythonなどでウェブドライバー(chromium)を自動化することをTrueで宣言しています。

上記2つのコードを記載することで、自動テストコメントの非表示化、かつ、ウェブドライバー自動化宣言を行うことができます。

これにより、悩まされていたエラー表示はなくなります。

片方のコードだけでは、エラー表示は無くなりませんのでご注意ください。

今回、私はブラウザに「Microsoft Edge」を用いていましたが「google chrome」でも、問題なく動作することは確認しています。

google chromeの方は、コードのなかのMicrosoft Edgeのところをすべて、crhomeに宣言しなおしていただけたらと思います。

さいごに。本当に役立つ情報

Python初心者は、Udemyでの動画勉強をおすすめします。私もUdemyでかなり上達しました。

下記リンクから、Udemyのサンプル動画で講義の様子や内容を知ることができますので一度確認してみてください。本当におすすめです。

Udemy講師の方は現役でIT企業に勤めている方で、基礎的なところから応用まで丁寧に教えてくれます。特によかったのが、実際のIT企業でのコードの書き方やルールを解説してくれるところです。就職や転職も考えている方にも最初の学習に適していると思いました。


あと、プログラミングスクールが気になっている方は、かなり値段が高いので、せっかくなら就活支援が強いところ(就職率100%みたいなところ)にすることをおすすめします。

例えば、TECH CAMPです。私の友達も就活支援を活用しIT業界に転職した人もいます。

あまり知られていない情報ですが、もしTECH CAMPなどに入会する場合は有名なハピタスというポイ括サイトを経由して申し込みましょう。簡単に現金化できるポイントを3万~5万円分、公式のキャンペーンに加えてさらに貰うことができます。数十万円する費用を少しでも軽減しましょう。

その買うを、もっとハッピーに。|ハピタス



タイトルとURLをコピーしました