0
votes

Element Cliquez sur Exception interceptée

Je suis incapable d'effectuer une opération de clic sur le bouton de connexion de mon application.

ci-dessous est le code HTML.Et u peut trouver l'élément de bouton exact dans la dernière ligne. P>

The error which i get:
OpenQA.Selenium.ElementClickInterceptedException : element click intercepted: Element <button type="submit" id="register-btn" class="btn btn-block dl-button-primary dl-no-margin">...</button> is not clickable at point (758, 646). Other element would receive the click: <div class="footer navbar-fixed-bottom">...</div>


0 commentaires

3 Réponses :


0
votes

On dirait que vous manquez certains HTML car l'erreur référente un pied de page.

Pas un ventilateur de fil dormant mais essayez-en un et voyez si le sommeil du fil permet à la page de charger. Je me demande si votre page est toujours en train de charger et d'essayer de cliquer. Si le sommeil fonctionne, je supprimerais cela et faire un déplacement à l'élément ou essayez un clic Java. xxx


3 commentaires

C'est pourquoi je me demande sur le pied de page. Basé sur votre HTML, tout cela fonctionne bien pour moi. Votre page de page a-t-elle des liens supplémentaires pour la connexion où le XPATH trouve plus d'un élément?


Non


Le localisateur ne doit renvoyer qu'un seul élément et les divs n'a pas d'importance. Localisation par ID est plus rapide que XPath. Cependant, être intelligent avec votre XPath est également la clé. Pendant que vous pouvez utiliser // div [@ class = 'Form-Group DL-Padding-10'] / Bouton [@ ID = 'register-btn'], il serait préférable d'utiliser l'ID "registre-BTN". Ce que vous ne voulez pas, c'est xpath qui est fragile comme // div [2] / s'étonne [4] / ul / a [3] - ce sont les pires.



0
votes

Essayez avec JavaScript:

IWebElement Signinbutton = driver.FindElement(By.XPath("//button[contains(text(), 'Sign In (For Testing Purpose Only)')]"));
IJavaScriptExecutor javascriptExecutor = (IJavaScriptExecutor)driver;
executor.ExecuteScript("arguments[0].click();", Signinbutton );


0 commentaires

0
votes

L'exception que vous obtenez est parce que le bouton que vous essayez de cliquer est derrière cet élément.

... Qui semble être le pied de page de votre page.

Vous pouvez essayer l'une des étapes suivantes pour résoudre le problème

  1. Faites défiler jusqu'à n'importe quel élément sous le bouton de connexion (le cas échéant). Vous pouvez utiliser le code ci-dessous pour cela:

    Protected Boolean ScrollcoElement (élément WebElement) Jette NosuchelementException, StataleElementeReferenceException { essayer { jsexecutor.executscript ("arguments [0] .scrollinToView (vrai);", élément); retourne vrai; } Catch (NosuchelementException E) { logError ("élément non trouvé d'exception lors du défilement de l'élément (JavaScript)", e); jeter e; } Catch (StaleElementeReferenceException E) { logError ("Elément d'égalité d'élément en cas de défilement à l'élément (JavaScript)", e); jeter e; } }

    1. Fermer le pied de page si c'est pour Accepter les cookies ou quelque chose de similaire, ou vous pouvez également appliquer des CSS personnalisés sur cet élément pour le masquer, puis essayez de cliquer sur l'élément.

      chaîne CSS = "Affichage: Aucun! IMPORTANT;" Vide protégé addCincustomcs (WebElment WebElement, chaîne CSS) { registercall (nouvel objet () { } .getclass (). getenclosingMethod (). GetName ()); essayer { String Style = (String) Jsexecutor.Executscript ("Arguments [0] .getatTtribute ('Style')", WebElement); jsexecut.Executscript ("Arguments [0] .SettatTtribute ('Style'," + CSS + ")", WebElement); stylesqueue.add (style); } Catch (Exception E) { E.PrintStackTrace (); } }


0 commentaires