2015-10-20 9 views
5

Le mie scuse in anticipo se la mia domanda sembra primaria, sono molto nuovo al QA e al selenio.Qual è la differenza esatta tra "ExpectedConditions.visibilityOfElementLocated" e "ExpectedConditions.presenceOfElementLocated"

Qual è la differenza esatta tra:

wait.until(ExpectedConditions.visibilityOfElementLocated 
        (By.xpath("//a[text()='Show advanced settings...']"))).click(); 

e

wait.until(ExpectedConditions.presenceOfElementLocated 
        (By.xpath("//a[text()='Show advanced settings...']"))).click(); 

ho dato un'occhiata a here ma non capirlo.

risposta

9

Il visibleOfElmementLocated controlla se l'elemento è presente e anche visibile. Per verificare la visibilità, assicurarsi che l'elemento abbia un'altezza e una larghezza maggiore di 0.

Il presenceOfElementLocated controlla semplicemente il dom per vedere se è in grado di individuare un elemento indipendentemente dalla sua visibilità.

Fonte: https://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.html#visibilityOf-org.openqa.selenium.WebElement-

visibilityOf statico ExpectedCondition visibilityOf (elemento WebElement) pubblico prevedono, per verificare che un elemento, notoriamente presente sul DOM di una pagina, è visibile. visibilità significa che l'elemento non viene visualizzato solo ma ha anche un'altezza e larghezza che è maggiore di 0. Parametri:

+0

quindi se un elemento è presente ma non visibile non si possono fare clic su di esso, ma se è visibile e presente possiamo farlo, giusto? – LoveLovelyJava

+0

corretto. A meno che non si usi un clic javascript. –

+0

che dire di javascript click? devo scrivere il codice in javascript? !! :( – LoveLovelyJava