Come si definisce "visibile all'utente"? Come proponi di controllarlo? Se ha un'altezza? Se non è nascosto dai CSS? Cosa succede se l'elemento genitore è nascosto dai CSS?
Il modo più affidabile sarà quello di utilizzare di selenio costruito nel .Displayed
proprietà (se si utilizza C#, Java ha qualcosa di simile), e combinarlo con il selettore 'visibile' di jQuery: http://api.jquery.com/visible-selector/. Esempio di seguito, in C#.
var element = Driver.FindElement(By.Id("test"));
bool isVisible = element.Displayed;
var javascriptCapableDriver = (IJavascriptExecutor)Driver;
bool jQueryBelivesElementIsVisible = javascriptCapableDriver.ExecuteScript("return $('#myElement').is(:visible);");
bool elementIsVisible = isVisible && jQueryBelievesElementIsVisible;
Questo otterrà la maggior parte dei casi.
Non è possibile senza codice lato client, o nella preparazione che qualcun altro trovi un modo per farlo in un linguaggio lato server, dubito fortemente che sia carino, leggibile o affidabile.
jQuery ha il metodo offset()
:
http://api.jquery.com/offset/
Questo, tuttavia, non funziona se si tiene conto delle frontiere, margini, questo genere di cose.
Sfortunatamente, nessun modo senza JavaScript. Perché non lo vuoi, comunque? Qualche cosa da [qui] (http://stackoverflow.com/questions/704758/how-to-check-if-an-element-is-really-visible-with-javascript) aiuta? –
@Slanec Ad esempio, ho un bug in cui a causa di alcuni CSS poveri, un pulsante che deve essere cliccato è posizionato, ad esempio al 110% della larghezza della finestra, e l'overflow è impostato su nascosto. Quindi il pulsante non diventerà MAIUSC, non con lo scorrimento o il ridimensionamento o altro. A proposito, questo succede solo a IE11. Quindi ora voglio un test case per verificare che il pulsante sia visibile da aggiungere alla regressione per il prodotto. Sfortunatamente, isDisplayed() è true per l'elemento. – dmansfield
Sto verificando la visibilità di un elemento utilizzando Css, Z-index. Se posso controllare la visibilità dell'elemento, nello strato posteriore di un altro elemento. – bcrajkumar