--user-data-dir
Le problème :
Les utilisateurs de Selenium rencontrent fréquemment des blocages lors du chargement de profils Chrome avec --user-data-dir
et --profile-directory
. Le navigateur se bloque souvent pendant 60 secondes avant d'expirer, perturbant ainsi l'automatisation.
La solution :Évitez le profil par défaut
La clé est d'éviter le profil Chrome par défaut. Les extensions, les favoris et l'historique de navigation du profil par défaut peuvent entrer en conflit avec les tests, provoquant des erreurs. Créez et utilisez plutôt un profil dédié.
Création d'un profil Chrome personnalisé :
chrome://settings/
).Utilisation des options Chrome :
Une fois que vous avez votre profil personnalisé, utilisez ChromeOptions
pour préciser son emplacement :
<code class="language-csharp">ChromeOptions options = new ChromeOptions(); options.AddArgument($"--user-data-dir={profileDirectoryPath}"); // Use string interpolation for clarity options.AddArgument("--disable-extensions"); ChromeDriver driver = new ChromeDriver(@"pathtoexe", options); </code>
Remplacez {profileDirectoryPath}
par le chemin réel que vous avez trouvé à l'étape 5 ci-dessus. pathtoexe
doit pointer vers votre exécutable ChromeDriver.
Exemple complet :
Ce code illustre l'utilisation d'un profil personnalisé :
<code class="language-csharp">ChromeOptions options = new ChromeOptions(); options.AddArgument("--user-data-dir=C:/Users/Me/AppData/Local/Google/Chrome/User Data/Profile 2"); options.AddArgument("--disable-extensions"); ChromeDriver driver = new ChromeDriver(@"pathtoexe", options); driver.Navigate().GoToUrl("somesite");</code>
Exécution réussie du test :
En utilisant cette approche de profil personnalisé, Chrome devrait se lancer sans blocage, permettant à vos tests Selenium de se dérouler sans problème. N'oubliez pas de remplacer les chemins d'espace réservé par vos chemins de répertoire réels.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!