Le code HTML est si j'utilise ce code p> Je vais obtenir tout texte: NoteCurrentValue forte Achetez 1.11 P> Mon objectif est d'obtenir uniquement le 1.11 sans le texte dans la balise de l'espace. P> S'il vous plaît, aidez-moi. P> P>
3 Réponses :
Pour obtenir la valeur induire Vous devez ajouter des bibliothèques suivantes. P > 1.11 code> Utiliser
JavaScripts Executor CODE> et obtenir lastchild strand> de l'élément
td code>.
webdiverwait () code> et
visibilité_of_element_located () code> p>
print(driver.execute_script('return arguments[0].lastChild.textContent;', driver.find_element_by_xpath('//*[@id="fs_title_values"]/div[3]/table/tbody/tr[1]/td[5]')))
Merci pour votre réponse rapide. Mais ajouter 3 bibliothèques pour cette tâche simple est très lourde. Y a-t-il une méthode plus simple.
@DuardBauer: C'est la meilleure pratique pour inclure une attente pour éviter tout problème de synchronisation de page dans selenium.Si vous ne voulez pas utiliser cela juste, essayez simplement d'être mis à jour.
Vous pouvez supprimer le texte du nœud enfant du texte intégral pour obtenir le texte du noeud parent.
cccss ='//*[@id="fs_title_values"]/div[3]/table/tbody/tr[1]/td[5]' full_text = driver.find_element_by_xpath(cccss).text child_text = driver.find_element_by_xpath(cccss + â//spanâ).text parent_text = full_text.replace(child_text, '') print(parent_text)
Merci. C'est ça. Mais il faut appeler parent_text = Full_Text.replace (enfant_text, '')
@Eduardbauer meta.stackexchange.com/ Questions / 5234 / ...
L'extrait du texte Idéalement, vous devez induire webDriverwait em> pour le note strong>: Vous devez ajouter les importations suivantes: p>
visibilité_of_element_located () code> et vous pouvez utiliser ce qui suit xpath em> basé stratégies de localisateur : p>
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC