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

プログラミング
bitbank

エラー内容

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を早く身に付けたい人は

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

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

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


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

私はものづくり技術職であり、他業種からプログラミングの勉強はじめました。

プログラミングの独学は挫折する確率が70%と言われており非常に高いです。

理由は私も体感しましたがかなり専門用語が多く、勉強の仕方も良く分からないところで苦戦しました。

モチベーションを保つには、はやくつまらない基礎学習は済ませて、気になるアプリを自分でつくってみることだと思います。

自分の思う通りに動作してくれると、結構楽しくて便利で、プログラミングにハマると思います。

もしも、悩んだ場合はプロに相談するのが良いですが、スクールなどは数万円~数十万円と値段がかかります。まずは、無料カウンセリングで、聞きたいことを聞きまくるのが良いです。

おすすめの無料カウンセリングを紹介しておきます。

大事なことですが、聞きたいことを事前にすべてまとめてから相談しましょう。

・悩んでいること
・具体的な勉強方法
・転職相談(希望あれば)
などを箇条書きに整理しておくイメージです。

無料ですので、時間の限り、どんどん質問しましょう。恥はかきすての精神です。自分の本気度次第で恥ずかしさは無くなるかと思います。
(何も考えずにいくと、スクール入会を勧められるだけで、実りある時間になりません,,,)

★プログラミング学習で悩んでいる人
プログラミングスクール大手のTechAchademyの無料学習カウンセリングです。プログラミング学習で悩んでいる人にプロの方がやさしく丁寧に答えてくれます。


★ITエンジニア転職まで考えている人

プログラミングスクール大手のTechAchademyの転職含めたカウンセリングです。IT業界に就職・転職したい人は、役立ち情報や進め方など、教えてくれます。スクールに入ると就職までしっかりと面倒を見てくれるコースもあるので参考に話を聞いてみるのはアリかなと思います。



bitbank
プログラミング
みやみつブログ