Domanda

Sto creando una suite di test Selenium per un'applicazione web album. Vorrei verificare se l'immagine viene visualizzata in realtà (che contiene dati di immagine valido). È una cosa possibile?

È stato utile?

Soluzione

I ha affrontato questa situazione simile prima in cui lo src dell'immagine è come previsto, ma l'immagine non viene visualizzata nella pagina.

È possibile verificare se l'immagine è sempre visualizzata o meno utilizzando il JavaScriptExcecutor.

Utilizza il seguente codice - Passare il WebElement (immagine) -

 Object result = ((JavascriptExecutor) driver).executeScript(
   "return arguments[0].complete && "+
   "typeof arguments[0].naturalWidth != \"undefined\" && "+
   "arguments[0].naturalWidth > 0", image);

    boolean loaded = false;
    if (result instanceof Boolean) {
      loaded = (Boolean) result;
      System.out.println(loaded);
    }

È possibile verificare se l'immagine è effettivamente caricato sulla pagina web in questo modo.

Altri suggerimenti

Se stai usando Java, il selenio ha un metodo chiamato eval o giù di lì. Si dà una stringa javascript e ti dà il risultato sotto forma di stringa. Ad esempio, si potrebbe provare questo (in una sola riga):

var req = new XMLHttpRequest();
req.open('get', document.getElementById('imageid').src, false);
req.send(null);
req.status==200

Ciò dovrebbe restituire "vero" per lo stato 200 o "false" per qualcos'altro.

Se si è disposti a utilizzare i testplan frontend a lì Selenio alcune opzioni. Una volta che avete l'URL dell'immagine si può afferrare questo URL e controllare le intestazioni restituite. È inoltre possibile salvare i dati in un file se si desidera ispezionare manualmente. Oppure si può scrivere un validatore in Java per prendere i dati e controllare per vedere se decodifica in realtà.

Se siete disposti a provarlo poi ti scriverò uno script di esempio. Posso anche fare una funzione Quick Image validatore se vuoi.

Utilizzare questa funzione uno di linea:

Boolean isImageLoaded = (Boolean) ((JavascriptExecutor)driver).executeScript("return arguments[0].complete && typeof arguments[0].naturalWidth != \"undefined\" && arguments[0].naturalWidth > 0", imageWebElement);

dove:

imageWebElement = WebElement per individuare un'immagine a pagina

isImageLoaded = Risultato in booleana (return true se l'immagine è presente, false se non la sua)

Si può certamente controllare che l'immagine viene visualizzata nella sorgente della pagina per esempio utilizzando un parametro XPath.

Si può supporre che, perché è nel sorgente della pagina, verrà visualizzato ma non so di alcun senso realmente convalidare questa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top