Comment exécuter un test Selenium en Java


J'ai donc utilisé Selenium ID pour créer un cas de test pour une automatisation que je veux faire. Je veux pouvoir créer un contrôle de boucle / flux pour ce cas, j'ai donc pensé que je devrais l'exporter hors de Selenium ID vers quelque chose comme Java (je suis le plus familier avec Java). J'ai exporté vers Java/JUnit4/Pilote Web . Je pense qu'essayer d'exécuter le fichier java via Eclipse fonctionnerait mieux, bien que si quelqu'un sait quelque chose de plus facile, faites-le moi savoir. De toute façon, je n'ai PAS trouvé la BONNE EXPLICATION sur la façon d'exécuter ce Java via Eclipse.

La plupart des choses que j'ai lues me disent de m'assurer que mes bibliothèques de chemin de construction incluent le Selenium Standalone Server. Pratiquement toutes les choses que je lis me disent d'utiliser la télécommande Selenium. Cependant, je pensais que le RC était déprécié, et je me demande s'il y a de toute façon pour le faire fonctionner avec les trucs de pilote Web plus récents que j'ai téléchargés à partir de Selenium. De plus, la plupart des choses que j'ai lues me disent que je dois utiliser public static void main () , ce qui est un peu gênant car je ne sais pas comment modifier le code que le sélénium exporté me donne (évidemment, je ne peux pas simplement tout coller dans la méthode principale).

Si quelqu'un pouvait me guider de l'exportation de Selenium vers Java à l'exécution du code, je serai pour toujours dans votre dette.

Le code Selenium me donne: package com.exemple.essais;

package com.rackspace;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.NoAlertPresentException;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;

public class RackspaceContactAutomation {
   private WebDriver driver;
   private String baseUrl;
   private boolean acceptNextAlert = true;
   private StringBuffer verificationErrors = new StringBuffer();

   @Before
   public void setUp() throws Exception {
      driver = new FirefoxDriver();
      baseUrl = "https://cp.rackspace.com/Exchange/Mail/Contacts/List.aspx?selectedDomain=blahblahblah.com";
      driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
   }

   @Test
   public void testContactAutomationJava() throws Exception {
      driver.get(baseUrl + "/Exchange/Mail/Contacts/List.aspx?selectedDomain=blahblahblah.com");
      driver.findElement(By.linkText("Mr. Man")).click();
      driver.findElement(By.linkText("Contact Information")).click();
      new Select(driver.findElement(By.id("PhoneNumberType"))).selectByVisibleText("Mobile");
      driver.findElement(By.id("MobilePhone")).sendKeys("999-999-9999");
      new Select(driver.findElement(By.id("PhoneNumberType"))).selectByVisibleText("Fax");
      driver.findElement(By.id("Fax")).sendKeys("999-999-9999");
      driver.findElement(By.cssSelector("button.primary")).click();
   }

   @After
   public void tearDown() throws Exception {
      driver.quit();
      String verificationErrorString = verificationErrors.toString();
      if (!"".equals(verificationErrorString)) {
         fail(verificationErrorString);
      }
   }

   private boolean isElementPresent(By by) {
      try {
         driver.findElement(by);
         return true;
      } catch (NoSuchElementException e) {
         return false;
      }
   }

   private boolean isAlertPresent() {
      try {
         driver.switchTo().alert();
         return true;
      } catch (NoAlertPresentException e) {
         return false;
      }
   }

   private String closeAlertAndGetItsText() {
      try {
         Alert alert = driver.switchTo().alert();
         String alertText = alert.getText();
         if (acceptNextAlert) {
            alert.accept();
         } else {
            alert.dismiss();
         }
         return alertText;
      } finally {
         acceptNextAlert = true;
      }
   }
}

Cela me donne 4 erreurs (3 pour les annotations, que je pourrais simplement supprimer, et une pour fail dans le tearDown() méthode. Ce ne sont pas les erreurs qui me préoccupent tant comment faire exécuter ce code?

Merci!

Author: Man Friday, 2013-08-28

3 answers

Un bon moyen d'exécuter du code Java Selenium dans Eclipse est de les exécuter en tant que JUnit tests.

1. Créez un projet Maven dans votre Eclipse.
Si vous ne l'avez pas fait auparavant, voir:

2. Ajoutez les dépendances suivantes à votre pom.fichier xml:

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.7</version>
    <scope>test</scope>
</dependency>    
<dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.25.0</version>           
</dependency>    
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-firefox-driver</artifactId>
    <version>2.33.0</version>
</dependency> 
<dependency><groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-server</artifactId>
    <version>2.25.0</version>    
</dependency>

3. Copiez votre fichier Java exporté dans le projet Maven.

4. Ajouter les importations suivantes dans le fichier:

import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

5. Exécutez le fichier Java en tant que test JUnit, comme ceci:

Exemple de mon éclipse (La version est Kepler)

 14
Author: James Dunn, 2017-05-23 11:45:55

Les réponses précédentes sont toutes légitimes. Mais pour exécuter directement à partir de votre eclipse, vous devez apporter quelques modifications à votre code. Vous n'avez pas besoin de public void main pour exécuter un code junit. Voici donc les étapes pour vous permettre de simplement copier le code et de le coller dans eclipse et de l'exécuter en tant que test JUnit:

  1. Installez JUnit dans eclipse- > Aide-> eclipse market place - > recherchez JUnit et installez-le, redémarrez eclipse.

  2. Créez un projet dans eclipse et un nouveau package, puis créez une nouvelle classe avec le même nom que votre code exporté selenium ID, supprimez tout sauf la ligne de package.

  3. Copiez et collez le code de selenium ID dans cette classe, supprimez la ligne de package.

  4. Faites un clic droit dans votre zone de code et exécutez en tant que test JUnit.

 1
Author: bitiotek, 2016-01-25 17:14:16

Ma réponse à la conversion du sélénium en un test unitaire j est assez simple.

1st vous devez configurer le code dans l'atelier perspective utiliser l'éditeur en cliquant sur dans la barre d'outils >aller à montré dans>puis appuyez sur l'un de ces éditeurs > vous voyez l'éditeur Java ou l'éditeur de fenêtre et ainsi de suite, cela convertira votre code. appuyez ensuite sur revenir à la classe et mettez-la en surbrillance, faites un clic droit sur la souris et exécutez-le en tant qu'application Java. vous devriez pouvoir voir votre conception / et votre code source. plus de questions

 -1
Author: paul jay, 2015-03-23 09:29:00