Chrome を起動し、Selenium を使用して ChromeDriver で Web ページにアクセスしようとすると発生する「デフォルト アダプターの取得に失敗しました」というエラーを解決する方法 質問する

Chrome を起動し、Selenium を使用して ChromeDriver で Web ページにアクセスしようとすると発生する「デフォルト アダプターの取得に失敗しました」というエラーを解決する方法 質問する

Selenium を更新しましたが、Web ページが読み込まれてもエラーが発生し続けます。ただし、場合によっては、ドライバーが起動しても停止します。これが問題の原因ですか? そうであれば、どのように解決すればよいですか?

[11556:9032:0502/152954.314:ERROR:device_event_log_impl.cc(162)] [15:29:54.314] Bluetooth: bluetooth_adapter_winrt.cc:1055 Getting Default Adapter failed.

ベストアンサー1

このエラーメッセージは...

ERROR:device_event_log_impl.cc(162)] [15:29:54.314] Bluetooth: bluetooth_adapter_winrt.cc:1055 Getting Default Adapter failed.

...はScopedClosureRunner on_init失敗したことを意味しますBluetoothAdapterWinrt::OnGetDefaultAdapter()


分析

このエラーは、ブルートゥースアダプタ_winrt.cc次のように:

void BluetoothAdapterWinrt::OnGetDefaultAdapter(
    base::ScopedClosureRunner on_init,
    ComPtr<IBluetoothAdapter> adapter) {
  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
  if (!adapter) {
    BLUETOOTH_LOG(ERROR) << "Getting Default Adapter failed.";
    return;
  }

解決

確認しておいて:

  • セレン現在のレベルにアップグレードされますバージョン 3.141.59
  • Chromeドライバー最新のものに更新されましたChrome ドライバー v84.0レベル。
  • クロム最新のものに更新されましたChrome バージョン 84.0レベル。(ChromeDriver v84.0 リリースノート
  • あなたの基地がウェブクライアントバージョンが古すぎる場合はアンインストールして、最新のGAおよびリリースバージョンをインストールしてください。ウェブクライアント

追加の考慮事項

しかし、このエラーはChromeを次のように実行することで抑制できることが観察されました。rootユーザー(administrator)をLinuxで実行します。しかし、これはChromeDriver - Chrome 用 WebDriver言及されている箇所:

Chromeが起動時にクラッシュする一般的な原因は、Linux上でChromeをルートユーザー(管理者)として実行していることです。この問題は、ブラウザの作成時に「--no-sandbox」フラグを渡すことで回避できますが、ウェブドライバーセッション、つまりChromeドライバーこのような構成はサポートされていないため、セッションは強く推奨されません。

理想的には、代わりに通常のユーザーとして Chrome を実行するように環境を構成する必要があります。


エラーの抑制

最後に、Selenium Chrome ドライバー: レジストリ キーと実験的なオプションに関するエラー メッセージを解決するこれらのエラー ログは、次の引数を追加することで抑制できます。

excludeSwitches: ['enable-logging']

したがって、有効なコード ブロックは次のようになります。

from selenium import webdriver

options = webdriver.ChromeOptions() 
options.add_experimental_option("excludeSwitches", ["enable-logging"])
driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
driver.get("https://www.google.com/")

おすすめ記事