web-dev-qa-db-fra.com

Comment ouvrir un profil Chrome via l'argument --user-data-dir de Selenium

J'essaie de charger un navigateur chrome avec Selenium en utilisant mon compte existant et les paramètres de mon profil.
Je peux faire fonctionner cela en utilisant ChromeOptions pour définir le répertoire utilisateur et le profil. Cela charge le navigateur avec mon profil comme je le veux, mais le navigateur se bloque alors pendant 60 secondes et expire sans avancer dans l'automatisation.
Si je n'utilise pas le répertoire de données utilisateur et les paramètres de profil, cela fonctionne bien mais n'utilise pas mon profil.
La lecture que j'ai faite indique que je ne peux pas ouvrir plus d'un navigateur à la fois avec le même profil, alors je me suis assuré que rien n'était ouvert pendant que j'exécutais le programme. Il se bloque toujours pendant 60 secondes, même sans un autre navigateur ouvert.

m_Options = new ChromeOptions();
m_Options.AddArgument("--user-data-dir=C:/Users/Me/AppData/Local/Google/Chrome/User Data");
m_Options.AddArgument("--profile-directory=Default");
m_Options.AddArgument("--disable-extensions");
m_Driver = new ChromeDriver(@"pathtoexe", m_Options);
m_Driver.Navigate().GoToUrl("somesite");

Il se bloque toujours sur le GoToUrl. Je ne sais pas quoi essayer d'autre.

7
Thranor

Selon vos essais de code, vous essayiez de charger le Default Chrome Profile qui sera contre tous les best pratiques comme Default Chrome Profile peut contenir l'un des éléments suivants:

  • Extensions
  • Signets
  • Historique de navigation
  • etc

Par conséquent, le Par défaut Profil Chrome peut ne pas être conforme à vous Spécifications de test ​​et peut soulever une exception pendant le chargement. Par conséquent, vous devez toujours utiliser un personnalisé Profil Chrome comme ci-dessous.

Pour créer et ouvrir un nouveau Profil Chrome, vous devez suivre les étapes suivantes:

  • Ouvrez le navigateur Chrome, cliquez sur Menu latéral et cliquez sur Paramètres sur lequel rlchrome://settings/ s'ouvre.
  • Dans la section People, cliquez sur Manage other people sur laquelle une fenêtre contextuelle apparaît.
  • Cliquez sur AJOUTER UNE PERSONNE, indiquez nom de la personne, sélectionnez une icône, conservez l'élément Créez un raccourci sur le bureau pour cet utilisateur coché et cliquez sur le bouton AJOUTER .
  • Votre nouveau profil est créé.
  • Instantané d'un nouveau profil Sélénium

Selenium

  • Une icône de bureau sera désormais créée sous la forme Sélénium - Chrome
  • À partir des propriétés de l'icône du bureau Selenium - Chrome obtenez le nom du répertoire de profil. par exemple. - profile-directory = "Profil 2"

profile-directory

  • Obtenez le chemin absolu de profile-directory dans votre système comme suit:

    C:\\Users\\Thranor\\AppData\\Local\\Google\\Chrome\\User Data\\Profile 2
    
  • Passez maintenant la valeur de profile-directory à travers une instance de ChromeOptions avec la méthode AddArgument avec la clé ser-data-dir comme suit :

    m_Options = new ChromeOptions();
    m_Options.AddArgument("--user-data-dir=C:/Users/Me/AppData/Local/Google/Chrome/User Data/Profile 2");
    m_Options.AddArgument("--disable-extensions");
    m_Driver = new ChromeDriver(@"pathtoexe", m_Options);
    m_Driver.Navigate().GoToUrl("somesite");
    
  • Exécutez votre Test

  • Observez Chrome est initialisé avec le Chrome Profile as Selenium

Selenium

3
DebanjanB