2013-01-04 13 views
19

Każdy może wysłać mi przykładowy kod jak sprawdzić elementemJak zweryfikować elementy obecne lub widoczne w selen 2 (Selen WebDriver)

  1. ispresent
  2. isvisible
  3. isenable
  4. textpresent

w Selenium WebDrvie R przy użyciu Java

+2

Co próbowaliście? Czytałeś jakieś samouczki? W jakim języku? DO#? Jawa? PHP? Świnia łacińska? – Arran

+0

Chcę spróbować w języku Java. Proszę wysłać mi samouczki lub dokument pomocowy dla sterownika internetowego selenu. Będę ci wdzięczny. proszę pomóż mi –

Odpowiedz

6

Można spróbować czegoś takiego:

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()); 

Jest to tylko przykład. Zasadniczo deklarujesz i definiujesz zmienne WebElement, które chcesz użyć, a następnie Assert, czy są one wyświetlane. Używa to asercji TestNG.

+0

bardzo dziękuję .. Spróbuję tego w moim projekcie –

+0

Próbuję powyższego przykładu, ale to nie jest wykonywanie kolejnych kroków, jeśli poprzednie asercja nie działa. Chcę użyć weryfikacji zamiast asercji, aby można było uruchomić kolejne kroki testowe. I również zawiodę cały przypadek testowy, jeśli jakiekolwiek twierdzenie i verficatin się nie powiodą –

+0

Więc to, co zebrałem z twojej odpowiedzi, to to, że chciałbyś, aby test był kontynuowany, nawet jeśli twierdzenie nie powiedzie się. Czy to jest poprawne? – DarthOpto

0

Aby upewnić się, że dany element jest obecny można wykonać następujące czynności:

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

To zwróci tablicę, jeśli rozmiar tablicy jest> 0 to element/s jest obecny.

Również trzeba dostarczyć więcej informacji, takich jak język i co ty próbowałeś przed pytaniem,

Powodzenia

+0

driver.findelement (By.id ("id1")). isDisplayed() ' driver.findelement (By.id ("id2")). ("test"); Tutaj, jeśli element nie jest wyświetlany, nie powiedzie się przypadek testowy i nie przejdzie do kolejnego etapu wykonania. Więc proszę, pomóżcie mi jak radzić sobie z asercją i xcontinue wykonanie testu dla kolejnych kroków w sejenowym webdrierze i testowaniu. Nawet ja też chcę oznaczyć przypadek testowy niepowodzeniem, jeśli jakiekolwiek twierdzenie nie powiedzie się. –

+0

id jest unikalny, powinieneś użyć do tego celu funkcji .findElement(). .findElements() jest na przykład dla. By.ClassName() – Brunis

44

użyłem java oświadczenia drukowania dla łatwiejszego zrozumienia.

  1. Aby sprawdzić Element prezent:

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

    Albo

    if(driver.findElement(By.xpath("value"))!= null){ 
    System.out.println("Element is Present"); 
    }else{ 
    System.out.println("Element is Absent"); 
    } 
    
  2. Aby sprawdzić Widoczny:

    if(driver.findElement(By.cssSelector("a > font")).isDisplayed()){ 
    System.out.println("Element is Visible"); 
    }else{ 
    System.out.println("Element is InVisible"); 
    } 
    
  3. Aby sprawdzić Włącz:

    if(driver.findElement(By.cssSelector("a > font")).isEnabled()){ 
    System.out.println("Element is Enable"); 
    }else{ 
    System.out.println("Element is Disabled"); 
    } 
    
  4. Aby sprawdzić tekst obecny

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

Te przykłady będą lepsze przy użyciu klasy ExpectedConditions. – djangofan

+0

if (driver.findElement (By.cssSelector ("a> font")). IsDisplayed()) { nie działa tak, jak jest wyświetlany, nie zwraca false. zwraca true tylko wtedy, gdy wyświetlono inaczej throws element not found wyjątek ... – Manglesh

3

Oto mój kod Java dla Selen WebDriver.Wpisz następującą metodę i wywołać ją podczas twierdzenie:

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

Spróbuj użyć poniższy kod:

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

Aby sprawdzić, czy element ma widoczne musimy użyć element.isDisplayed(); Ale jeśli trzeba sprawdzić obecność elementu w dowolnym miejscu w Domu możemy wykorzystać następujące metody

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

Metoda execute (String, WebElement) jest niezdefiniowana dla typu JavascriptExecutor –

Powiązane problemy