NoSuchElementException, le Sélénium impossible de localiser l'élément
je voudrais trouver mon TextField en sélénium, mais je ne sais pas comment (j'utilise sellenium pour la première fois).
J'ai essayé:
driver.findElement(By.id("originTextField"))
ou par xPath et cssSelector Chaîne générée par google chrome dev tools.
Merci de m'aider, je vous serais reconnaissant une explication.
c'est du html:
Vous devez vous connecter pour publier un commentaire.
NoSuchElementException
org.openqa.le sélénium.NoSuchElementException populairement connu comme NoSuchElementException s'étend org.openqa.le sélénium.NotFoundException qui est un type de WebDriverException.
NoSuchElementException peuvent être jetés dans les 2 cas, comme suit :
Lors de l'utilisation de
WebDriver.findElement(By by)
:Lors de l'utilisation de
WebElement.findElement(By by)
:Que par la Javadoc juste comme n'importe quel autre WebDriverException, NoSuchElementException doit contenir les éléments suivants Champs Constants :
Raison
La raison pour NoSuchElementException peut être l'une des suivantes :
<iframe>
tag.Solution
La solution à l'adresse NoSuchElementException peut être l'une des suivantes :
Adopter une Localisateur De Stratégie qui identifie de manière unique l'souhaité WebElement. Vous pouvez prendre l'aide de l' Outils de développement (Ctrl+Maj+I ou F12) et l'utilisation Élément Inspecteur.
Ici, vous trouverez une discussion détaillée sur les comment inspecter l'élément dans selenium3.6 comme firebug n'est pas une option de plus pour FF 56?
Utilisation
executeScript()
méthode pour faire défiler l'élément à afficher comme suit :Ici, vous trouverez une discussion détaillée sur les Le défilement en haut de la page en Python à l'aide de Sélénium
Encas élément ayant l'attribut style="display: none;", supprimez l'attribut par
executeScript()
méthode comme suit :Pour vérifier si l'élément est dans un
<iframe>
parcourez la HTML pour localiser respectifs<iframe>
tag etswitchTo()
souhaité iframe par l'une des méthodes suivantes :Ici vous pouvez trouver une discussion détaillée sur les Est-il possible de passer d'un élément dans une image sans utiliser de pilote.switchTo().cadre(“frameName”) dans Selenium Webdriver Java?.
Si l'élément n'est pas présent/visible dans le DOM HTML immédiatement, induire WebDriverWait avec ExpectedConditions ensemble de la bonne méthode comme suit :
Attendre presenceOfElementLocated :
Attendre visibilityOfElementLocated :
Attendre elementToBeClickable :
executeScript()
méthode ? Merci!!!!Votre code est correct, je suppose que la question a causé la page complète pas de charge lorsque vous trouvez l'élément.
Essayez d'ajouter un long sommeil avant de trouver l'élément, si l'ajout de sommeil travaillé, changer de sommeil à attendre.
Voici le code, Cela signifie attendre 10s si l'élément n'est pas présent: