J'ai mis à jour Selenium mais l'erreur continue de se produire même si la page Web se charge. Cependant, dans certains cas, le pilote démarre mais il stagne. Cela pose-t-il un problème et si oui, comment puis-je le résoudre?
[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.
4 Réponses :
J'obtenais la même erreur. Sur un code qui fonctionnait hier. Le Code est disponible à cette url en ce moment https://youtu.be/0kLoVGLTISg?list=PLUDwpEzHYYLvx6SuogA7Zhb_hZl3sln66&t=4073
https://github.com/Microsoft/vscode-python/issues/3252 Vous avez trouvé l'indice de résolution ici dans la section des commentaires, ainsi que https://docs.python.org/3/library/unittest.html#unittest. TestCase.setUp ,
suggérant que, nous ne pouvons pas exécuter sur "Pycharm" / VSCode en utilisant un clic droit -> exécuter à partir du niveau de la classe, nous devons l'exécuter à partir du niveau du module, c'est-à-dire en dehors du niveau de la classe, car la méthode setUpClass () n'est pas exécutée lors de l'exécution à partir de à l'intérieur de la classe.
J'ai eu des problèmes similaires
ConnectionResetError: [WinError 10054] Une connexion existante a été fermée de force par l'hôte distant et
Bluetooth: bluetooth_adapter_winrt.cc:1055 Échec de l'obtention de l'adaptateur par défaut.
Les deux ont disparu après avoir exécuté cmd en tant qu'administrateur . Je ne sais pas quelle est la cause exacte de ce problème, mais pour moi, il semble que ce soit un manque de privs lors de l'utilisation du sélénium.
Si quelqu'un pouvait expliquer pourquoi cela se produit, ce serait formidable.
Piotr, je suis curieux - l'ordinateur sur lequel vous exécutez cela a-t-il réellement un périphérique Bluetooth? Je me demande si vous avez un tel appareil, peut-être que l'exécution de cmd en tant qu'administrateur lui donne accès à cet appareil, il n'y a donc pas d'erreur. Purement spéculation, cependant.
Ce message d'erreur ...
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/")
... implique que ScopedClosureRunner on_init
échoué dans BluetoothAdapterWinrt::OnGetDefaultAdapter()
.
Cette erreur est définie dans bluetooth_adapter_winrt.cc comme suit:
excludeSwitches: ['enable-logging']
Veiller à ce que:
Cependant, il a été observé que cette erreur peut être supprimée en exécutant Chrome en tant qu'utilisateur root
( administrator
) sous Linux. mais ce serait un écart par rapport à la documentation de ChromeDriver - WebDriver pour Chrome où il est mentionné:
Une cause fréquente de panne de Chrome au démarrage est l'exécution de Chrome en tant qu'utilisateur root (administrateur) sous Linux. Bien qu'il soit possible de contourner ce problème en passant l'indicateur '--no-sandbox' lors de la création de votre session WebDriver , c'est-à-dire que la session ChromeDriver en tant que telle configuration n'est pas prise en charge et fortement déconseillée.
Idéalement, vous devez configurer votre environnement pour exécuter Chrome en tant qu'utilisateur régulier à la place.
Enfin, selon la documentation de Selenium Chrome Driver: Résoudre les messages d'erreur concernant les clés de registre et les options expérimentales, ces journaux d'erreurs peuvent être supprimés en ajoutant l'argument:
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; }
Ainsi, votre bloc de code efficace sera:
ERROR:device_event_log_impl.cc(162)] [15:29:54.314] Bluetooth: bluetooth_adapter_winrt.cc:1055 Getting Default Adapter failed.
recherche d'une syntaxe similaire pour moka ...:
Le simple fait d'activer le Bluetooth de mon appareil a résolu le problème ... Je ne sais pas pourquoi
J'utilise des conteneurs Docker pour exécuter mon code - j'imagine que je pourrais leur ajouter un faux périphérique Bluetooth, mais cela semble un peu excessif!
Collez votre code que vous exécutez. Fournissez plus de description comme le navigateur Chrome, ChromeDriver, la version Selenium que vous utilisez. Passez également par Comment poser une question
J'obtiens la même erreur en C #. J'imagine que c'est parce qu'il n'y a pas d'adaptateurs Bluetooth sur l'ordinateur exécutant le code, mais je ne vois aucun moyen de désactiver la vérification.
En ce qui concerne la correction de @ Alok, il y a en fait assez d'informations ici, si vous pouvez le croire. Pour C # au moins, un code "ouvrir une fenêtre ChromeDriver" extrêmement générique ( executeautomation.com/blog/simple-code-with-selenium-c ) générera l'erreur dans la console. En ce qui concerne "plus de description", la gestion des versions est les versions à jour de tout - ChromeDriver 81.0.4044.13800, Selenium WebDriver 3.141.0