2013-01-04 2 views
19

Tout peut me envoyer le code exemple comment vérifier l'élémentComment vérifier élément présent ou visible en sélénium 2 (Selenium WebDriver)

  1. IsPresent
  2. IsVisible
  3. isenable
  4. textpresent

dans Selenium WebDrvie r en utilisant Java

+2

Qu'est-ce que vous avez essayé? Avez-vous lu des tutoriels? Dans quelle langue? C#? Java? PHP? Cochon latin? – Arran

+0

Je veux l'essayer en langage java. S'il vous plaît envoyez-moi des tutoriels ou des documents d'aide pour le pilote Web Selenium. Je serai reconnaissant envers vous. s'il vous plaît aidez-moi –

Répondre

6

Vous pouvez essayer quelque chose comme:

WebElement rxBtn = driver.findElement(By.className("icon-rx")); 
    WebElement otcBtn = driver.findElement(By.className("icon-otc")); 
    WebElement herbBtn = driver.findElement(By.className("icon-herb")); 

    Assert.assertEquals(true, rxBtn.isDisplayed()); 
    Assert.assertEquals(true, otcBtn.isDisplayed()); 
    Assert.assertEquals(true, herbBtn.isDisplayed()); 

Ceci est juste un exemple. Fondamentalement, vous déclarez et définissez les variables WebElement que vous souhaitez utiliser, puis Assert, qu'elles soient ou non affichées. Ceci utilise TestNG Assertions.

+0

merci beaucoup .. Je vais l'essayer dans mon projet –

+0

j'essaie ci-dessus exemple mais il n'est pas l'exécution des prochaines étapes si l'assertion précédente est un échec. Je veux utiliser verify au lieu de l'assertion pour pouvoir exécuter les prochaines étapes de test. Et je fais aussi échouer tout le cas de test si une assertion et une vérification sont échouées –

+0

Donc, ce que j'ai compris de votre réponse, c'est que vous voudriez que le test continue même si l'assertion échoue. Est-ce exact? – DarthOpto

0

Pour vous assurer qu'un élément est présent, vous pouvez effectuer les opérations suivantes:

driver.findElements(By.id("id")); 

qui retourne un tableau, si cette taille du tableau est> 0 alors l'élément/s est présente.

, vous devez également fournir plus d'informations, telles que la langue et ce que vous avez essayé avant de demander,

Bonne chance

+0

driver.findelement (By.id ("id1")). isDisplayed() ' driver.findelement (By.id ("id2")). sendkey ("tester"); Ici, si l'élément n'est pas affiché, il échoue au test élémentaire et ne passe pas à l'étape suivante pour l'exécution. Alors s'il vous plaît aidez-moi à gérer l'assertion et à continuer l'exécution des tests pour les prochaines étapes du sélénium webdrier et testng. Même si je veux aussi marquer un cas de test échouer si quelqu'un a échoué. –

+0

id est unique, vous devriez utiliser .findElement() pour cela. .findElements() est par exemple. By.ClassName() – Brunis

44

je imprimer des relevés java pour faciliter la compréhension.

  1. Pour vérifier le présent élément:

    if(driver.findElements(By.xpath("value")).size() != 0){ 
    System.out.println("Element is Present"); 
    }else{ 
    System.out.println("Element is Absent"); 
    } 
    

    Ou

    if(driver.findElement(By.xpath("value"))!= null){ 
    System.out.println("Element is Present"); 
    }else{ 
    System.out.println("Element is Absent"); 
    } 
    
  2. Pour vérifier Visible:

    if(driver.findElement(By.cssSelector("a > font")).isDisplayed()){ 
    System.out.println("Element is Visible"); 
    }else{ 
    System.out.println("Element is InVisible"); 
    } 
    
  3. Pour vérifier Activer:

    if(driver.findElement(By.cssSelector("a > font")).isEnabled()){ 
    System.out.println("Element is Enable"); 
    }else{ 
    System.out.println("Element is Disabled"); 
    } 
    
  4. Pour vérifier le texte actuel

    if(driver.getPageSource().contains("Text to check")){ 
    System.out.println("Text is present"); 
    }else{ 
    System.out.println("Text is absent"); 
    } 
    
+1

Ces exemples seraient meilleurs en utilisant la classe ExpectedConditions. – djangofan

+0

if (driver.findElement (By.cssSelector ("a> police")). IsDisplayed()) { ne fonctionnerait pas car isdisplayed ne renvoie pas false. renvoie true uniquement si affiché sinon throws élément non trouvé exception ... – Manglesh

3

Voici mon code Java pour Sélénium WebDriver.Écrivez la méthode suivante et l'appeler pendant l'affirmation:

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

Essayez d'utiliser ci-dessous le code:

private enum ElementStatus{ 
     VISIBLE, 
     NOTVISIBLE, 
     ENABLED, 
     NOTENABLED, 
     PRESENT, 
     NOTPRESENT 
    } 
    private ElementStatus isElementVisible(WebDriver driver, By by,ElementStatus getStatus){ 
     try{ 
      if(getStatus.equals(ElementStatus.ENABLED)){ 
       if(driver.findElement(by).isEnabled()) 
        return ElementStatus.ENABLED; 
       return ElementStatus.NOTENABLED; 
      } 
      if(getStatus.equals(ElementStatus.VISIBLE)){ 
       if(driver.findElement(by).isDisplayed()) 
        return ElementStatus.VISIBLE; 
       return ElementStatus.NOTVISIBLE; 
      } 
      return ElementStatus.PRESENT; 
     }catch(org.openqa.selenium.NoSuchElementException nse){ 
      return ElementStatus.NOTPRESENT; 
     } 
    } 
-1

Pour vérifier si l'élément est visible nous devons utiliser element.isDisplayed(); Mais si nous devons vérifier présence de l'élément partout dans Dom nous pouvons utiliser la méthode suivante

public boolean isElementPresentCheckUsingJavaScriptExecutor(WebElement element) { 
     JavascriptExecutor jse=(JavascriptExecutor) driver; 
     try { 
      Object obj = jse.execute("return typeof(arguments[0]) != 'undefined' && arguments[0] != null;", 
        element); 
      if (obj.toString().contains("true")) { 
       System.out.println("isElementPresentCheckUsingJavaScriptExecutor: SUCCESS"); 
       return true; 
      } else { 
       System.out.println("isElementPresentCheckUsingJavaScriptExecutor: FAIL"); 
      } 

     } catch (NoSuchElementException e) { 
      System.out.println("isElementPresentCheckUsingJavaScriptExecutor: FAIL"); 
     } 
     return false; 
    } 
+0

La méthode execute (String, WebElement) est indéfinie pour le type JavascriptExecutor –

Questions connexes