0
votes

exception 'élément non interactable "en C # chromedriver

J'utilise le chromedriver Selenium en C # pour essayer de cliquer sur une touche d'impression, mais je reçois une exception de "Elément non interactable", voici la source de site Web du bouton d'impression: xxx

Qu'est-ce que j'ai essayé: xxx

Cependant aucun de ceux-ci n'a travaillé pour moi.

Le site web utilisé est bjs.com et le bouton Imprimer et se trouve sur l'onglet clips sur

Qu'est-ce que je fais mal, pourquoi l'élément n'est pas intraitable et comment puis-je résoudre ce problème?


0 commentaires

3 Réponses :


0
votes

L'élément doit être visible (c'est généralement ce qui le rend "interactable") avant de pouvoir cliquer (). Ouvrez-vous l'onglet "coupé" avant de cliquer ()?


1 commentaires

Oui, j'utilise ce code qui clique avec succès sur l'onglet: pilote.findElementByID ("CLIPPEDTAB"). Cliquez sur (); Cependant, il ne parvient pas à cliquer sur le bouton Imprimer.



0
votes

Le XPath que vous faites est en réalité causant problème.

Tous les XPaths ci-dessus ne sont pas uniques et indiquent réellement que 2 XPaths 1 est imprimé que vous souhaitez cliquer et que d'autres ne sont pas interactifs (ou cachés) un. Comme il essaie de cliquer sur caché, il lance une erreur. Voir l'image Entrez la description de l'image ici

Solution simple: - Utilisez XPath comme :: // * @ id = "coupé"] / div / div [1] / div [3] / div / p / étoupe


4 commentaires

Je reçois une erreur: openqa.selenium.noschelementException: "Aucun élément de ce type: impossible de localiser l'élément: {" méthode ":" xpath "," sélecteur ":" // * [@ @ ID = "clipsé"] / div / div1 / di v [3] / div / p / span "}


J'ai découvert le problème, le bon xpath serait le suivant: // * [@ Id = 'cliché'] / div / div [1] / div [3] / div / p / span


Une fois que vous modifiez votre réponse, je vais le marquer comme une solution, merci!


Eh bien, j'ai ajouté la même chose .. mais cela a pris comme un lien .. édité maintenant



0
votes

L'élément souhaité est un Elément angulaire de manière à Cliquez sur () Code> sur l'élément Vous devez induire webdiverwait em> pour le ellementtobeclickable () code> et vous pouvez utiliser l'un des deux Stratégies de localisation :

  • csselector code>: p>

    new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//img[@class='printImg']/h2"))).Click();
    
  • xpath code>: p>

    new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("img.printImg"))).Click();
    


0 commentaires