[JAVA] Que faire si vous ne pouvez pas obtenir le texte d'un élément dans Selenium

Le sélénium, souvent utilisé pour le grattage, est une contre-mesure lorsque le texte d'un élément ne peut pas être bien obtenu.

Facile à devenir accro

Cette fois, je résumerai comment traiter ces deux points.

Si le nom de la classe contient des espaces

Avec JavaScript, même s'il contient des espaces

document.getElementByClassName("class name").innerText;

Écrivez simplement le nom de la classe tel qu'il est, comme Vous pouvez facilement obtenir l'élément de texte du nom de classe spécifié. Si vous souhaitez le remplacer par du sélénium,

WebDriver.findElement(By.cssSelector("div[class='class name']")).getText().toString();

Utilisation de By.cssSelector comme Si vous spécifiez avec WebDriver.findElement (By.cssSelector (" {tag name} [class = '{class name}'] ")), vous pouvez bien obtenir l'élément de texte.

Ensuite, si le nom de la classe correspond mais que le texte ne peut pas être obtenu

Je n'ai pas explicitement étudié les types de balises d'élément qui peuvent être obtenues avec Selenium, Principalement limité à div, ʻa, table, tr, td Pour identifier la balisespan, la balise bet d'autres éléments, spécifiez l'élément directement dans Xpath ou spécifiez l'élément directement. Vous pouvez l'obtenir en spécifiant le nom de classe de l'élément de la balisediv` dans l'élément parent de l'élément que vous souhaitez obtenir.

<div class="div_class_name">
    <b class="b_class_name">
        <span class="span_class_name">Le texte que vous souhaitez obtenir</span>
    </b>
</div>

Dans ce cas, vous pouvez obtenir le texte en utilisant le nom de classe " div_class_name "dans la balise div.

Lorsque vous utilisez Xpath, Avec la souris focalisée sur l'élément à l'aide des outils de développement de Chrome Clic droit → [Copier] → [Copier XPath] Puisque vous pouvez obtenir le XPath avec

image.png

WebDriver.findElement(By.xpath("{xpath}")).getText();

Vous pouvez obtenir le texte avec.

c'est tout.

Il s'écarte du thème de l'article, Puisqu'il y a une légère différence de défilement entre JavaScript et Selenium, Vous devez également faire attention à cela.

Même si vous pouvez bien l'obtenir avec JavaScript, cela ne fonctionne parfois pas comme prévu avec Selenium, donc Au pire, il est possible d'incorporer du code JavaScript dans du code Java et de l'exécuter, donc Tout ce que vous devez savoir, c'est ça!

Recommended Posts

Que faire si vous ne pouvez pas obtenir le texte d'un élément dans Selenium
[Rails] Que faire si vous ne pouvez pas obtenir de message d'erreur avec la méthode des erreurs
Que faire lorsqu'une exception java.io.IOException se produit dans GlassFish
Que faire si la commande rails devient inutilisable
Que faire si vous obtenez une erreur de nombre d'arguments erroné dans binding.pry
Que faire si vous obtenez une erreur gcc dans Docker
Que faire si vous oubliez votre mot de passe root sur CentOS7
[Rails] Que faire si vous ne pouvez pas obtenir de paramètres avec form_with
Que faire si vous obtenez une erreur avec l'authentification de base pendant le code de test Rails
Que faire si vous obtenez une erreur d'argument: nombre incorrect d'arguments (donné 2, attendu 0) dans votre test RSpec
Que faire si vous obtenez un avertissement groovy dans Thymeleaf Layout
Que faire si vous ne pouvez pas installer le plug-in à partir d'Eclipse Marketplace
Obtenez le type d'un élément d'un tableau pour déterminer s'il s'agit d'un tableau
Que faire si vous obtenez une [Une requête HTTP a pris trop de temps à se terminer.] Erreur dans Docker.
Que faire si le serveur Rails ne peut pas démarrer
Que faire si vous ne pouvez pas activer la boîte de sélection créée par bootstrap-select
Que faire quand Pour installer la version manquante, exécutez `gem install bundler: 2.1.4`
Que faire si vous entrez gem'bcrypt 'dans votre Gemfile et obtenez une erreur avec l'installation du bundle
Que faire si le message "Un serveur est déjà en cours d'exécution" s'affiche. Erreur lors de la tentative de démarrage du serveur rails
Que faire si vous obtenez une exception javax.net.ssl.SSLHandshakeException: connexion de l'hôte distant fermée pendant l'établissement de liaison dans IBM JDK
[Java] Que faire si vous obtenez une erreur dans Eclipse disant "Non autorisé au niveau source inférieur à 1.X"
Que faire si vous recevez l'avertissement «Le validateur d'unicité n'appliquera plus la comparaison sensible à la casse dans Rails 6.1.» Dans Rails 6.0
Que faire si vous ne trouvez pas le JDK que vous avez mis dans SDKMAN après la migration de bash vers zsh sous macOS
[Rails] Que faire si vous effectuez accidentellement une installation groupée dans un environnement de production de votre environnement local
Que faire si vous obtenez une erreur «302» dans le code de test du contrôleur dans Rails
Que faire si la page Rails n'est pas affichée dans le didacticiel Rails 1.3.2
Que faire lorsque Cloud 9 est plein dans le didacticiel Rails
Que faire si vous vous fâchez contre OpenSSL avec Pyenv Install
Comment obtenir la longueur d'un fichier audio avec Java
Que faire si vous sélectionnez un JRE dans Eclipse et obtenez "Le JRE sélectionné ne prend pas en charge le niveau de conformité actuel 11"
Que faire si vous obtenez une erreur de bibliothèque partagée JNI lorsque vous essayez de créer avec Eclipse
Que faire lorsque le préfixe c n'est pas lié dans JSP
Que faire si vous n'aimez pas le code généré par swagger-codegen-cli
Que faire si vous recevez une alerte de vulnérabilité MiniMagick sur GitHub
Que faire si vous obtenez d'autres occurrences d'erreurs d'analyse de l'en-tête http seront consignées au niveau de débogage. Dans Tomcat 8.5.37
Que faire si le serveur Tomcat meurt
Que faire si vous transmettez des informations incorrectes
Que faire si l'opération non autorisée s'affiche lors de l'exécution d'une commande dans le terminal
Que faire si vous obtenez l'erreur Trop long sans sortie (dépassé 10m0s) dans CircleCI
[Swift] Comment obtenir le nombre d'éléments dans un tableau (super basique)
Que faire lorsque vous pensez que vous ne pouvez pas Groovy-> Java avec IntelliJ IDEA CE
Si vous souhaitez satisfaire la couverture de test des méthodes privées dans JUnit
Que faire si vous obtenez Impossible de localiser le répertoire Gemfile ou .bundle /
Que faire si les modifications ne sont pas reflétées dans le fichier manifeste JAR
Que faire si l'installation de ffi échoue lors du lancement d'une application dans Rails
Que faire si vous avez activé Utiliser le moteur basé sur WSL2 dans Docker Desktop avec une installation WSL2 insuffisante