0
votes

Comment gratter des éléments sans classe ni identifiant d'un site Web

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

sur le site Web, si vous regardez le balisage HTML pour les spécifications, il existe un div avec contenus formulaire : liquide . Je veux extraire le "liquide".

Ceci est mon code jusqu'à présent xxx

ceci résulte d'un timeoutException . Je ne suis pas sûr de ce que je fais mal.

PS: J'ai pu cliquer sur le bouton Afficher plus 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.


0 commentaires

4 Réponses :


0
votes

Vous pouvez le faire en définissant vers pilote = webdiver.chrome () {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") [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.


0 commentaires

1
votes

Obtenez le parent div des éléments que vous souhaitez utiliser ce XPath:

// b [texte () = 'Formulaire:'] // Parent :: Div

et pour saisir le texte, il semble que vous devez utiliser .get_attribute ('innerhtml') au lieu de .Text

Essayez le code suivant: xxx


0 commentaires

1
votes

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')]


0 commentaires

0
votes

Pour obtenir la valeur 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.

Utilisation de 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:']]")))))


0 commentaires