Ho avuto lo stesso problema. A mio avviso, a seconda del livello di autorizzazione dell'utente, alcuni collegamenti, pulsanti e altri elementi non verranno visualizzati nella pagina. Parte della mia suite stava testando la mancanza degli elementi che DOVREBBE mancare. Ho passato ore a cercare di capirlo. Finalmente ho trovato la soluzione perfetta.
Ciò che fa è dire al browser di cercare qualsiasi e tutti gli elementi in base specificati. Se risulta 0
, ciò significa che non è stato trovato alcun elemento basato sulla specifica. Quindi ho il codice eseguire un'istruzione if per farmi sapere che non è stato trovato.
Questo è dentro C#
, quindi le traduzioni dovrebbero essere fatte a Java
. Ma non dovrebbe essere troppo difficile.
public void verifyPermission(string link)
{
IList<IWebElement> adminPermissions = driver.FindElements(By.CssSelector(link));
if (adminPermissions.Count == 0)
{
Console.WriteLine("User's permission properly hidden");
}
}
C'è anche un altro percorso che puoi seguire a seconda di ciò di cui hai bisogno per il tuo test.
Il frammento seguente sta verificando se esiste un elemento molto specifico nella pagina. A seconda dell'esistenza dell'elemento, ho il test per eseguire un if else.
Se l'elemento esiste e viene visualizzato nella pagina, mi è stato console.write
fatto sapere e andare avanti. Se esiste l'elemento in questione, non posso eseguire il test di cui avevo bisogno, che è il ragionamento principale alla base della necessità di configurarlo.
Se l'elemento non esiste e non viene visualizzato nella pagina. Ho l'altro in if else eseguo il test.
IList<IWebElement> deviceNotFound = driver.FindElements(By.CssSelector("CSS LINK GOES HERE"));
//if the element specified above results in more than 0 elements and is displayed on page execute the following, otherwise execute whats in the else statement
if (deviceNotFound.Count > 0 && deviceNotFound[0].Displayed){
//script to execute if element is found
} else {
//Test script goes here.
}
So di essere un po 'in ritardo sulla risposta all'OP. Spero che questo aiuti qualcuno!