「USB: usb_device_handle_win.cc:1054 Failed to read descriptor from node connection: システムに接続されたデバイスが機能していません。 (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’])
Pythonでブラウザを制御したときに「自動テスト ソフトウェアによって制御されています」がポップアップされますが、これを非表示にしてます。
.addのドットの前には、自分で定義したブラウザオプションをあたまに付けます。
私は、Microsoft Edgeなので、options = EdgeOptions()と定義してます。このため、optionsを頭に付けて、options.add_experimental_option(‘excludeSwitches’, [‘enable-logging’])となります。
google chromeの方は、コードのなかのMicrosoft Edgeのところをすべて、crhomeに宣言しなおしていただけたらと思います。
.use_chromium = True
これは、pythonでウェブドライバー(chromium)を自動制御することをTrueにしてます。
上記2つのコードを使うことで
- 自動テストコメントの非表示化
- ウェブドライバー自動制御
を行うので、エラーも解決されるはずです。
※片方のコードだけでは、エラー表示は無くなりませんのでご注意ください。
プログラミングをマスターするには
プログラミングを学び始めたけど、勉強の仕方があっているか心配。。。
このように悩んでいる方は多いとおもいます。
この一番の解決策はプログラミングスクールに通ってIT企業に就職することです。
独学でひとりで学習するのは限界があります。おそらく自分自身でもそのように感じ取られているのではないでしょうか。
とはいえ、スクール代は高いので、なかなかふんぎりが付かないというのが正直な気持ちかと思います。
プログラミングスクールは良い点がたくさんあります。
- プログラミングスクールの良い点
-
- 正しい構文が学べる
- 3カ月で実力がつく
- 同じ境遇の仲間と知り合える
- 疑問を何度も相談できる
- 就職支援してもらえる
現役のプロ講師に正しい勉強法を教えてもらえます。IT業界へのパイプも強いのでほぼ確実にIT企業に就職できます。
最短で言うと、プログラミングスクールで3カ月学習したのち、すぐにIT企業に就職できます。
その2~3年後にはフリーランスとして独立も見えてきます。独学ではここまでのスピードで成長することは難しいです。
またIT企業に就職することは下記の良いステータスが得られます。
- IT企業に就職して良いこと
-
- 実績と経験を積める
- IT業界に知り合いが増える
- 顧客と知り合える
- 超優良企業に転職できる
- リモートワークしやすい
- フリーランスとして独立しやすい
現在、IT企業の人手不足は深刻な課題です。IT企業で実績と経験をつめば、働くことにまず困らなくなります。また、グーグルなどのIT企業だけでなく、一般企業のSIも求人数が常に高い状況であり、超優良企業へのステップアップ転職も可能性がでてきます。
さらにリモートワークもしやすい仕事であり、フリーランスとして独立を目指せる職業です。実力次第では個人で数千万円の年収を得ることもできます。サイドFIREして、好きなときだけ働くこともでき、40歳以降でも自由度の高い選択ができます。
以上より、
プログラミングスクールで正しく短期間で学習を行い、IT企業で実績と経験を積むことが一番の近道です。プログラミングスクール代ははっきり言ってすぐに取り返せます。
あと、プログラミングスクールもどこを選ぶかが大事です。
現在はテックアカデミーがかなり強いです。
》テックアカデミーのプログラミングコース
- テックアカデミーが強い理由
-
-
- 3か月でエンジニアを目指せるコースがある
-
- 受講したカリキュラムはオンラインで完結できる
-
- 受講生1人に対して現役エンジニアがサポート
-
- 週2回マンツーマンのビデオチャットで質問ができる
-
- 毎日15〜23時チャットサポート可能
-
- 様々な言語に対応して学習が可能
-
ぜひ一番の近道でプログラミングを学び、自分自身の将来に活用していただけたらと思います。