0
votes

Impossible de localiser les éléments d'identification avec python3 et sélénium

J'essaie d'obtenir tous les éléments d'identification dans une certaine page Web. Je peux trouver l'élément UL qui les contient et je peux même trouver un élément spécifique par ID (c.-à-d. Browser.Find_Element_by_id ('380797')), mais lorsque je exécute Browser.Find_All_elements_by_tag_name ('ID') Le résultat est un Liste vide. J'ai aussi essayé par CSS ou XPath, même résultat.

Comment puis-je obtenir tous les éléments d'identification dans la liste? Le HTML ressemble à quelque chose comme ça:

... ... ... Entrez la description de l'image ici


3 commentaires

Spécifiquement sur ID, il peut être dynamique et modifier chaque fois que la page est rendue. Une autre chose à vérifier est de savoir si la section de la page utilisée est à l'intérieur d'une iframe. Si c'est le cas, vous devez la passer d'abord.


Merci @eugenes. J'ai du mal à comprendre si cette partie est à l'intérieur d'un iframe, quelle est la meilleure façon de le faire? De plus, si c'est à l'intérieur d'un iframe, comment est-ce que je peux localiser un élément d'identifiant spécifique mais pas tous les éléments d'identification?


Tag_Name fait référence au nom de la balise. Par exemple, div dans

ou ul dans
    . Donc, la raison de votre sélection n'a pas fonctionné est que la balise n'est pas appelée ID (l'attribut est).


3 Réponses :


0
votes

Vous pouvez utiliser Execute_script. (meilleur moyen à mon avis) xxx


0 commentaires

1
votes
browser.find_elements_by_xpath("//div[@id="placards-container"]/ul/div[contains(@class,'placard')]
The contains() method is the best approach for detecting the exact type of elements.

0 commentaires

0
votes

Utilisez des attributs généraux présents dans tous les éléments. La règle est la suivante: trouvez tous les DIV avec ID de la DIV avec ID de placards-conteneur.

CSS:
browser.find_elements_by_css_selector ("# Palaiseurs-conteneur-conteneur div [ID]") ou de
browser.find_elements_by_csss_selector ("# Palaiseurs-conteneur-conteneur UL> div [ID]")

xpath:
browser.find_elements_by_xpath ("// div [@ Id = 'Palaiseurs-conteneur'] // div [@ID]") ou
browser.find_elements_by_xpath ("// div [@ ID = 'Palaiseurs-conteneur'] / ul / div [@ID]")


0 commentaires