Je travaille sur un projet de sélénium. Dans le projet, j'essaie de gratter un élément particulier du site Web. L'élément n'a pas de classe ou d'identification qui lui est associé. Donc, je suis un peu coincé sur la façon d'extraire ce détail.
C'est le Site Web P>
sur le site Web, si vous regardez le balisage HTML pour les spécifications, il existe un Ceci est mon code jusqu'à présent p> ceci résulte d'un PS: J'ai pu cliquer sur le bouton code> Afficher plus code> de la page pour afficher la zone Spécifications avec sélénium. Juste au cas où vous vous demandez, ce n'est pas le problème. P> p> div Code> avec contenus formulaire b>: liquide code>. Je veux extraire le "liquide". P> timeoutException code> . Je ne suis pas sûr de ce que je fais mal. P>
4 Réponses :
Vous pouvez le faire en définissant vers pilote = webdiver.chrome () code> {dites si vous utilisez chrome et que vous utilisez le webDriver pour chrome installé} et écrivez la ligne suivante comme; pilote.find_element_by_tag_name ("H1") code> [Dites si vous vouliez extraire des détails sur H1 élément et utilisez cet élément.]. J'espère que j'ai bien compris votre question correctement. P>
Obtenez le parent et pour saisir le texte, il semble que vous devez utiliser Essayez le code suivant: p> div des éléments que vous souhaitez utiliser ce XPath: // b [texte () = 'Formulaire:'] // Parent :: Div Code> p> .get_attribute ('innerhtml') code> strong> au lieu de .Text code> strud> p>
Lorsque nous essayons d'obtenir des éléments par des locators ID, c'est unique, si vous n'avez pas d'identité, vous pouvez utiliser le nom de la classe, XPath and LinkText
Utilisez ce XAPTH: P>
//*[contains(text(),'Liquid')]
Pour obtenir la valeur Utilisation de liquide code> Vous devez d'abord cliquer sur Afficher plus d'abord CODE>, puis attendez visibilité_of_element_located () code> pour l'élément sur le Page.Vous pouvez utiliser l'approche suivante pour obtenir la valeur. Split code> () P> driver.get("https://www.target.com/p/hawaiian-punch-fruit-juicy-red-1-gal-bottle/-/A-13051948")
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//button[@data-test='toggleContentButton' and contains(.,'Show more')]"))).click()
print(driver.execute_script('return arguments[0].lastChild.textContent;', WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,"//div[./b[text()='Form:']]")))))