3

Existe-t-il un moyen de se connecter à un site Web sans écrire le mot de passe dans le code. Par exemple, j'ai créé une fonction pour me connecter:Selenium WebDriver: Se connecter à un site Web

var isAlreadyLogIn = false; 

function LogIn (userId, password) { 
    if (!isAlreadyLogIn) { 
     driver.findElement(By.xpath("//*[@id='Email']")).sendKeys(userId); 
     driver.findElement(By.xpath("//*[@id='Password']")).sendKeys(password); 
     driver.findElement(By.xpath("//input[@value='Login']")).click(); 
     isAlreadyLogIn = true; 
    } 
} 

it('Should login', function(done) { 
    LogIn("username", "password"); 
}); 
+0

je ne comprenais pas tout à fait votre question, est-ce que vous ne voulez pas être inclus dans votre code ou n'importe où (fichiers de configuration) du tout dans votre projet. en raison de problèmes de sécurité? –

+0

Je ne veux pas que le mot de passe soit révélé n'importe où dans le code et de préférence pas dans le fichier de configuration pour des raisons de sécurité. –

+0

que diriez-vous de le passer à travers la ligne de commande, lorsque vous exécutez le code? –

Répondre

3

Votre code aura besoin d'accéder aux informations d'identification. Je pense que la façon la plus courante de résoudre cela est de placer les informations d'identification dans un fichier de configuration et de les lire à partir de là. Si vous ne voulez pas que les mots de passe soient inclus avec le code, vous pouvez simplement ne pas valider dans le fichier de configuration du référentiel, mais le partager avec un autre moyen. Vous pouvez également transmettre le nom d'utilisateur et le mot de passe command-line arguments à vos tests.

Here are NodeJS examples how to store the credentials in different ways. Les exemples sont pour les bases de données, mais l'idée est la même.

0

Si vous utilisez maven, une option utilise les profils et les propriétés du système de remplacement.

<profile> 
     <id>QA</id> 
     <properties> 
      <runUrl>http://qaenvironment.com </runUrl> 
      <admin.username>admin</admin.username> 
      <admin.password>adminpass</admin.password>   
      <noadmin.username>noadmin</noadmin.username> 
      <noadmin.password>qwerty123</noadmin.password> 
     </properties> 
    </profile> 

Marchepied l'exécution du profil de petit morceau d'assurance qualité, par exemple, et dans le code Java en utilisant que:

driver.findElement(By.xpath("//*[@id='Email']")).sendKeys(System.getProperty("admin.username")); 
driver.findElement(By.xpath("//*[@id='Password']")).sendKeys(System.getProperty("admin.password"));