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: Qu'est-ce que j'ai essayé: p> Cependant aucun de ceux-ci n'a travaillé pour moi. P> Le site web utilisé est bjs.com et le bouton Imprimer et se trouve sur l'onglet Qu'est-ce que je fais mal, pourquoi l'élément n'est pas intraitable et comment puis-je résoudre ce problème? P> P> clips sur p> p>
3 Réponses :
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 ()? P>
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.
Le XPath que vous faites est en réalité causant problème. P>
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
p>
Solution simple: - Utilisez XPath comme :: // * @ id = "coupé"] / div / div [1] / div [3] / div / p / étoupe p / spano p >
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
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();