Errore "L'elemento non è cliccabile"
Il clic su ChromeDriver funziona simulando il clic del mouse al centro del primo rettangolo del client dell'elemento (o di delimitazione del rettangolo del client se non è presente un primo rettangolo del client). Il modo più semplice per scoprire su quale ChromeDriver sta tentando di fare clic è aprire Chrome Devtools e ispezionare l'elemento su cui fare clic con il mouse prima che venga richiamata l'operazione di clic. Seleziona l'elemento nella finestra di controllo e nota le caselle blu che rappresentano i paralleli del cliente dell'elemento, come illustrato di seguito. ChromeDriver proverà a fare clic sulla parte centrale del primo.
Se ChromeDriver restituisce l'errore "Elemento non cliccabile", è più probabile che questa posizione non sia effettivamente selezionabile dall'utente. Per verificare, posiziona il cursore al centro del primo rettangolo del client e controlla se quella posizione è cliccabile.
Nel caso precedente, il test ha tentato di fare clic sull'elemento anchor. In questo caso non è possibile fare clic sull'ancoraggio, ma solo nell'immagine secondaria. A causa di uno stile margin-bottom
sull'elemento dell'immagine, il centro dell'elemento di ancoraggio non rientra nei limiti dell'immagine cliccabili e ChromeDriver genera un errore.
Per ulteriori informazioni su come viene determinato il posizionamento o il dimensionamento, consulta la specifica W3. Per correggere il caso precedente, fai clic sull'immagine anziché sull'ancoraggio.
L'errore "Elemento non cliccabile" si verifica spesso nelle seguenti situazioni quando un test tenta di:
- Fai clic su un ancoraggio i cui elementi discendenti cliccabili non si trovano entro i limiti degli ancoraggi (come sopra)
- Fai clic su un elemento completamente o parzialmente sotto un altro elemento
- Fai clic su un elemento fuori schermo quando è presente un overlay fisso (l'elemento verrà reso visibile tramite scorrimento, ma è possibile far scorrere l'elemento sotto l'overlay fisso)
- Fai clic su un elemento non cliccabile al centro (ad esempio, alcuni tipi di elementi SVG convessi)
Spesso questi problemi possono essere risolti facendo clic su un elemento secondario di un determinato elemento, rimuovendo o nascondendo l'elemento di blocco in modo programmatico, utilizzando l'API Advanced Interazioni per fare clic in un offset dall'angolo superiore sinistro dell'elemento o simulando un evento di clic del mouse in JavaScript.
Errore "L'elemento non è cliccabile"
Molto probabilmente questo si verifica perché la posizione dell'elemento è cambiata un po' di tempo dopo che ChromeDriver ne ha determinato la posizione, ma prima che ChromeDriver invii effettivamente un clic nella posizione.
Per determinare se questo è il tuo problema, rileva l'eccezione dal clic e registra immediatamente la posizione corrente e le dimensioni dell'elemento. Confrontalo con la posizione su cui ChromeDriver segnala di aver tentato di fare clic nell'eccezione e controlla se sono diverse. In questo caso, aspetta che l'elemento si fermi o prova a fare di nuovo clic. In caso contrario, segnala un bug con una piccola pagina di test da utilizzare per riprodurre il problema (anche se causa il problema solo occasionalmente).
ChromeDriver non riesce a fare clic su un elemento in movimento
Questa non è una funzionalità supportata di ChromeDriver. Se alla fine l'elemento si arresta, attendi che si verifichi. Se l'elemento non si ferma mai, ChromeDriver non garantisce che il clic abbia esito positivo.