2012-04-19 17 views

risposta

19

isElementPresent() - Questo metodo verifica in sostanza se l'elemento che stiamo cercando è presente da qualche parte sulla pagina.

IsVisible() - cerca visualizzazione: tag nessuno stile - questo potrebbe gettare un puntatore nullo, se non stiamo attenti ... quindi per vedere se un elemento è visibile prima verifica se l'elemento è presente con isElementPresent() metodo. Quindi prova a verificare se l'elemento è visibile!

Osservare che isElementPresent() non disturba anche se il nostro elemento non è visibile.

Per esempio: Diciamo il sotto è il codice html per un componente relativa alla mia domanda di prova:

ora se si prova il componente di cui sopra con

selenium.isElementPresent("testinput") - returns true! 
selenium.isVisible("testinput") - returns false! 
+0

isVisible() non otterrà un'eccezione di puntatore nullo. Ma puoi ottenere una SeleniumException se l'elemento non è presente. La solita tecnica è qualcosa come 'if (selenium.isElementPresent (locator) && selenium.isVisible (locator)) {... do something ...}'. –

11

Come sulla lettura the documentation?

booleano isElementPresent (java.lang.String locator)

Verifica che l'elemento specificato è da qualche parte sulla pagina.

boolean IsVisible (java.lang.String localizzatore)

Determina se l'elemento specificato è visibile. Un elemento può essere reso invisibile impostando la proprietà "visibilità" CSS su "nascosto" o sulla proprietà "display" su "none", o per l'elemento stesso o su uno dei suoi antenati. Questo metodo fallirà se l'elemento non è presente.

+2

L'API sembra mal progettato. Se vuoi un'affermazione tu dici assertElementIsPresent o assertIsVisible. isMethods non dovrebbe generare eccezioni se l'obiettivo non è disponibile. La domanda viene dal design asimmetrico dell'API. Devi aver avuto una brutta giornata quel giorno. – boatcoder