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/")