J'essaie de lancer Chrome avec une URL, le navigateur se lance et il ne fait rien après cela.
Je vois l'erreur ci-dessous après 1 minute:
Unable to open browser with url: 'https://www.google.com' (Root cause: org.openqa.selenium.WebDriverException: unknown error: DevToolsActivePort file doesn't exist
(Driver info: chromedriver=2.39.562718 (9a2698cba08cf5a471a29d30c8b3e12becabb0e9),platform=Windows NT 10.0.15063 x86_64) (WARNING: The server did not provide any stacktrace information)
Ma configuration:
- Chrome: 66
- ChromeBrowser: 2.39.56
PS tout fonctionne bien dans Firefox
Réponses:
Ce message d'erreur ...
... implique que ChromeDriver n'a pas pu lancer / générer une nouvelle session WebBrowser, c'est-à-dire le navigateur Chrome .
Vos essais de code et les informations de version de tous les binaires nous auraient donné des indices sur ce qui ne va pas.
Cependant, selon Ajouter --disable-dev-shm-usage aux indicateurs de lancement par défaut, il semble que l'ajout de l'argument
--disable-dev-shm-usage
résoudra temporairement le problème.Si vous souhaitez lancer / étendre une nouvelle session du navigateur Chrome , vous pouvez utiliser la solution suivante:
disable-dev-shm-usage
Selon base_switches.cc
disable-dev-shm-usage
semble être valide uniquement sur Linux OS :Dans la discussion, ajoutez une option pour utiliser / tmp au lieu de / dev / shm, David mentionne:
Outro
Voici le lien vers l' histoire de Sandbox .
la source
DevToolsActivePort file doesn't exist
et pourquoi a-t-elle soudainement commencé à apparaître?disable-dev-shm-usage
ne suffisait pas d' ajouter . J'ai dû également ajouter--no-sandbox
pour que cela fonctionne. C'était la solution complète pour moi pour Selenium-java:chromeOptions.addArguments("--no-sandbox", "--disable-dev-shm-usage");
J'ai commencé à voir ce problème le lundi 04/06/2018. Nos tests se déroulent chaque jour de la semaine. Il semble que la seule chose qui ait changé était la version google-chrome (qui avait été mise à jour vers la version actuelle) JVM et Selenium étaient des versions récentes sur Linux box (Java 1.8.0_151, sélénium 3.12.0, google-chrome 67.0.3396.62, et xvfb-run).
Plus précisément, l'ajout des arguments " --no-sandbox " et " --disable-dev-shm-usage " a stoppé l'erreur. Je vais examiner ces problèmes pour trouver plus d'informations sur l'effet et d'autres questions comme ce qui a déclenché la mise à jour de google-chrome.
la source
[java] [1536892035.965][SEVERE]: Timed out receiving message from renderer: 60.000
erreurs même avec çaNous avions les mêmes problèmes sur nos esclaves jenkins (machine Linux) et avons essayé toutes les options ci-dessus.
La seule chose aidée est de mettre l'argument
Mais lorsque nous avons étudié plus en détail, nous avons remarqué que l'écran XVFB ne démarrait pas la propriété et que cela causait cette erreur. Après avoir réparé l'écran XVFB, le problème a été résolu.
la source
J'ai eu le même problème en python. Ce qui précède a aidé. Voici ce que j'ai utilisé en python -
la source
Mettre à jour:
Je suis capable de résoudre le problème et maintenant je peux accéder au chrome avec l'URL souhaitée.
Résultats de l'essai des solutions fournies:
J'ai essayé tous les paramètres fournis ci-dessus mais je n'ai pas pu résoudre le problème
Explication concernant le problème:
Selon mon observation, le fichier DevToolsActivePort n'existe pas lorsque chrome est incapable de trouver sa référence dans le dossier scoped_dirXXXXX.
Mesures prises pour résoudre le problème
Ajout du code ci-dessous pour appeler le chrome
En utilisant les étapes ci-dessus, j'ai pu résoudre le problème.
Merci pour vos réponses.
la source
J'étais confronté au même problème récemment et après quelques essais et erreurs, cela a également fonctionné pour moi.
DOIT ÊTRE EN HAUT:
BaseSeleniumTests.java
GoogleSearchPageTraditionalSeleniumTests.java
pom.xml
la source
Dans mon cas dans l'environnement suivant:
3.7.5
C:\Windows
3.141.0
J'avais besoin d'ajouter les arguments
--no-sandbox
et--remote-debugging-port=9222
à l'ChromeOptions
objet et d' exécuter le code en tant qu'utilisateur administrateur en déjeunant le Powershell / cmd en tant qu'administrateur.Voici le morceau de code associé:
la source
J'ai rencontré ce problème sur Ubuntu 20 avec Python Selenium après avoir d'abord téléchargé le chromedriver séparément, puis utilisé
sudo apt install chromium-browser
Même s'il s'agissait de la même version, cela continuait à se produire.Ma solution consistait à utiliser le pilote chrome fourni avec le package repo situé à
la source
Comme indiqué dans cette autre réponse :
Parmi les causes possibles, je voudrais mentionner le fait que, dans le cas où vous exécuteriez un Chromium sans tête via Xvfb, vous pourriez avoir besoin de
export
laDISPLAY
variable: dans mon cas, j'avais en place (comme recommandé) les options--disable-dev-shm-usage
et--no-sandbox
, tout était fonctionne bien, mais dans une nouvelle installation exécutant le dernier (au moment de l'écriture) Ubuntu 18.04, cette erreur a commencé à se produire, et la seule solution possible était d'exécuter unexport DISPLAY=":20"
(après avoir déjà démarré Xvfb avecXvfb :20&
).la source
J'ai également rencontré ce problème lors de l'intégration avec le serveur jenkins, j'ai été utilisé comme utilisateur root pour le travail de jenkin, le problème a été résolu lorsque j'ai changé l'utilisateur pour un autre utilisateur . Je ne sais pas pourquoi cette erreur se produit pour l'utilisateur root.
la source
Dans mon cas, cela s'est produit lorsque j'ai essayé d'utiliser mon profil utilisateur par défaut:
Cela a déclenché la réutilisation de processus déjà exécutés en arrière-plan par Chrome, de telle sorte que le processus lancé par chromedriver.exe s'est simplement terminé.
Résolution: supprimez tous les processus chrome.exe exécutés en arrière-plan.
la source
mettre à jour les capacités dans conf.js comme
la source
Dans mon cas, j'essayais de créer un fichier jar exécutable sur le système d'exploitation Windows avec un navigateur Chrome et je veux exécuter la même chose en mode sans tête dans une boîte unix avec CentOs dessus. Et je pointais mon binaire vers un pilote que j'ai téléchargé et emballé avec ma suite. Pour moi, ce problème continue de se produire indépendamment de l'ajout de ce qui suit:
La solution que j'ai essayée et travaillée pour moi est de télécharger le chrome et ses outils sur la machine hôte VM / Unix, d'installer et de pointer le binaire vers cela dans la suite d'automatisation et le bingo! Ça marche :)
Commande de téléchargement:
Commande d'installation:
Mettre à jour la suite avec le chemin binaire ci-dessous de google-chrome:
Et il fonctionne!
la source
J'ai eu le même problème, mais dans mon cas, chrome était précédemment installé dans le dossier temporaire de l'utilisateur, après avoir été réinstallé dans les fichiers de programme. Donc, aucune des solutions fournies ici ne m'aide. Mais si fournir le chemin vers chrome.exe, tout fonctionne:
J'espère que cela aide quelqu'un =)
la source
Aucune solution n'a fonctionné pour moi. Mais voici une solution de contournement:
la source
Vous pouvez obtenir cette erreur simplement pour transmettre de mauvais arguments à Chrome. Par exemple, si je passe
"headless"
comme argument au C # ChromeDriver, il se déclenche très bien. Si je fais une erreur et que j'utilise la mauvaise syntaxe,"--headless"
j'obtiens l'DevToolsActivePort file doesn't exist
erreur.la source
J'ai rencontré le même problème, j'utilise le navigateur UBUNTU, PYTHON et OPERA . dans mon cas, le problème venait du fait que j'avais une version obsolète de l'operadriver.
Solution: 1. Assurez-vous d'installer la dernière version du navigateur Opera (n'utilisez pas Opera beta ou Opera Developer), pour cela, rendez-vous sur le site officiel de l'opéra et téléchargez à partir de là la dernière version opera_stable.
wget https://github.com/operasoftware/operachromiumdriver/releases/download/v.80.0.3987.100/operadriver_linux64.zip
dans mon cas, la dernière était 80.0.3987 comme vous pouvez le voir
De plus, j'ai également installé chromedriver (mais comme je l'ai fait avant le test, je ne sais pas si cela est nécessaire) afin d'installer chromedriver, suivez les étapes de l'étape précédente: v
Profitez et remerciez-moi!
Exemple de code sélénium
la source
Il semble qu'il existe de nombreuses causes possibles à cette erreur. Dans notre cas, l'erreur s'est produite car nous avions les deux lignes de code suivantes:
Il est résolu en supprimant la deuxième ligne.
la source
J'ai rencontré le même problème en exécutant Chrome via Behat / Mink et Selenium dans un conteneur Docker. Après quelques bidouilles, je suis arrivé au suivant
behat.yml
qui fournit les interrupteurs mentionnés ci-dessus. Notez que tous étaient nécessaires pour que je puisse le faire fonctionner correctement.la source
Dans mon cas, je suis dans un environnement Kubernetes où je ne peux pas utiliser le TMPDIR par défaut car il remplira le répertoire temporaire avec des ordures.
J'utilisais donc ceci pour utiliser un autre tmpdir:
Mais maintenant que j'ai tout mis à niveau vers la dernière version, cela ne semble plus fonctionner. J'aurai besoin de trouver une nouvelle façon de faire cela.
la source
Cela se produit lorsque chromedriver ne parvient pas à déterminer le port de débogage utilisé par chrome.
Une cause possible est un défaut ouvert avec HKEY_CURRENT_USER \ Software \ Policies \ Google \ Chrome \ UserDataDir
Mais dans mon dernier cas, c'était une autre cause non identifiée.
Heureusement, la définition du numéro de port a fonctionné manuellement:
la source
Mauvais numéro de port dans mon cas. Vérifiez si le numéro de port lors du démarrage du serveur Selenium est le même que dans votre script.
la source
Je résous ce problème en installant
yum -y install gtk3-devel gtk3-devel-docs
", ça marche bienMon environnement de travail est:
Avant:
Après:
la source
Comme il s'agit du message le plus actif pour ce type d'erreur, je voulais mentionner ma solution (après avoir passé des heures à résoudre ce problème).
Sur Ubuntu 18.04, en utilisant Chrome 70 et Chromedriver 2.44 et Python3, j'ai continué à recevoir la même erreur DevToolsActivePort, même lorsque j'ai désactivé toutes les options répertoriées ci-dessus. Le fichier journal chromedriver ainsi que ps montraient que le chromedriver que j'avais défini dans chrome_options.binary_location était en cours d'exécution, mais il donnait toujours une erreur DevToolsActivePort. Lorsque j'ai supprimé chrome_options.binary_location = '....' et que je l'ajoute à la création de webdriver, je le fais fonctionner correctement. webdriver.Chrome ('/ chemin vers ... / chromedriver', chrome_options = chrome_options)
Merci à tous pour vos commentaires qui m'ont permis de comprendre et de résoudre le problème.
la source