Comment faire pour sélectionner l'élément à l'aide de la syntaxe XPATH sur le Sélénium pour Python?
envisager HTML suivant:
<div id='a'>
<div>
<a class='click'>abc</a>
</div>
</div>
Je veux cliquez sur abc, mais le conteneur div pourrait changer, donc
driver.get_element_by_xpath("//div[@id='a']/div/a[@class='click']")
n'est pas ce que je veux
j'ai essayé:
driver.get_element_by_xpath("//div[@id='a']").get_element_by_xpath(.//a[@class='click']")
mais cela ne fonctionnerait pas avec la plus profonde imbrication
des idées?
- avez-vous d'utiliser xpath? vous ne pouvez utiliser un sélecteur css? #un .cliquez sur ?
- Bien changer votre façon? Est-il obtenir un ID? N'est c'est un changement de position? Place-t-elle que
a
élément en un autre élément? - sry na pas comprendre votre commentaire, le sélecteur #un .cliquez obtiendrez un élément avec un id et regarder à l'intérieur pour un élément avec la classe sur. si le conteneur div changements qu'il faudra encore travailler.
driver.get_element_by_xpath("//a[@class='click']")
?- Il y a possibilité pour plusieurs <a class='cliquez sur'>abc</a> éléments dans la page, donc ne résout pas mon cas
- Comment au sujet de la
descendant
le sélecteur? ....driver.get_element_by_xpath("//div[@id='a']").get_element_by_xpath(.//descendant::a[@class='click']")
but the wrapper div could change
savez-vous ce que cela pourrait changer à l'? parce que si vous saviez, alors peut-être vous avez des conditions comme commence, se termine-avec, etc. et comme @FooBarUser etats.. utiliser les sélecteurs CSS.
Vous devez vous connecter pour publier un commentaire.
HTML
Vous pouvez utiliser le XPATH comme :
sortie
Que dit votre code Python doit être aussi :
Consultez ce blog par Martin Thoma. J'ai testé le code ci-dessous sur MacOS Mojave et cela a fonctionné comme prévu.