Une Double barre oblique (//) est le descendant-or-self de l'axe, c'est court pour /descendant-or-self::node()/.
Dans votre exemple XPath:
//div[@id='add']//span[@id='addone']
La première fois // apparaît, il sélectionne tous les div éléments dans le
un document id valeur de l'attribut égal à 'add'.
La deuxième fois // apparaît, il sélectionne tous les span éléments qui sont
les descendants de chacun des div éléments sélectionnés précédemment.
Notez que l'utilisation de deux doubles barres obliques deux fois, c'est différent que de simplement en utilisant
double barre oblique à la fois. Par exemple, //span[@id='addone'] sélectionnez tousspan éléments avec @id='addone' dans l'ensemble du document, indépendamment de si elles sont un descendant d'un div avec @id='add'.
J'ai une autre question. Sur la page web, il est bouton "recherche", Si je clique dessus, il sera montré tous les résultats. Maintenant, la condition est , si les données sont présentes , alors, il sera montré de données en ligne , mais si les données n'est pas présent, il sera montré "Aucun élément" texte sur la page. Pourriez-vous s'il vous plaît laissez-moi savoir comment gérer cette situation. J'ai essayer avec des if-else condition, mais il montre que l'élément est introuvable exception. Merci de m'aider sur elle, comment je vais vérifier l'état des données non trouvé pour l'élément en particulier. Vous êtes les bienvenus. Veuillez accepter cette réponse si il est aidé, et poser une nouvelle question concernant le nouveau bouton de recherche de la requête. Assurez-vous d'inclure un un Minimum, Complètes et Vérifiables exemple démontrer comment votre XPath n'est pas de sélectionner ce que vous voulez. Merci. Je suis en utilisant la logique suivante: Si (!=(webelement.xpath("").isDisplayed) élément trouvé d'autre ((webelement.xpath("").isDisplayed) l'élément est introuvable. Ici, j'ai utilisé si d'autre boucle pour vérifier l'élément est présent. mais si l'élément n'est pas présent dans le premier cas condtion, il affiche "élément introuvable". S'il vous plaît suggérer. Relisez mon dernier commentaire, soigneusement.
Puis //div[@id='add']//span[@id='addone'] entraînera dans la durée, car la deuxième // signifie que vous regardez pour n'importe quel enfant par rapport à div[@id='add'] qui est span[@id='add one'].
Si vous souhaitez utiliser une barre oblique //div[@id='add']/span[@id='addone'] alors bien sûr, vous ne le trouverez pas, car alors vous regardez pour un enfant direct et vous auriez à utiliser //div[@id='add']/ul/li/span[@id='addone']. Ainsi, la deuxième // est très utile en évitant supplémentaire de la hiérarchie dans vos requêtes xpath.
J'ai une autre question. Sur la page web, il est bouton "recherche", Si je clique dessus, il sera montré tous les résultats. Maintenant, la condition est , si les données sont présentes , alors, il sera montré de données en ligne , mais si les données n'est pas présent, il sera montré "Aucun élément" texte sur la page. Pourriez-vous s'il vous plaît laissez-moi savoir comment gérer cette situation. J'ai essayer avec des if-else condition, mais il montre que l'élément est introuvable exception. Merci de m'aider sur elle, comment je vais vérifier l'état des données non trouvé pour l'élément en particulier. Vous êtes les bienvenus. Veuillez accepter cette réponse si il est aidé, et poser une nouvelle question concernant le nouveau bouton de recherche de la requête. Je suis en utilisant la logique suivante: Si (!=(webelement.xpath("").isDisplayed) élément trouvé d'autre ((webelement.xpath("").isDisplayed) l'élément est introuvable. Ici, j'ai utilisé si d'autre boucle pour vérifier l'élément est présent. mais si l'élément n'est pas présent dans le premier cas condtion, il affiche "élément introuvable". S'il vous plaît suggérer. Vous avez deux bonnes réponses et doivent en accepter un, puis de poser une nouvelle question. Ne pas utiliser les commentaires pour les questions, ne pas coller du code dans les commentaires; et ne gardez pas de vous répéter, à travers les commentaires entre les réponses. Merci.
Une Double barre oblique (
//
) est le descendant-or-self de l'axe, c'est court pour/descendant-or-self::node()/
.Dans votre exemple XPath:
//
apparaît, il sélectionne tous lesdiv
éléments dans leun document
id
valeur de l'attribut égal à'add'
.//
apparaît, il sélectionne tous lesspan
éléments qui sontles descendants de chacun des
div
éléments sélectionnés précédemment.double barre oblique à la fois. Par exemple,
//span[@id='addone']
sélectionneztous
span
éléments avec@id='addone'
dans l'ensemble du document, indépendamment de si elles sont un descendant d'undiv
avec@id='add'
.J'ai essayer avec des if-else condition, mais il montre que l'élément est introuvable exception. Merci de m'aider sur elle, comment je vais vérifier l'état des données non trouvé pour l'élément en particulier.
Vous êtes les bienvenus. Veuillez accepter cette réponse si il est aidé, et poser une nouvelle question concernant le nouveau bouton de recherche de la requête. Assurez-vous d'inclure un un Minimum, Complètes et Vérifiables exemple démontrer comment votre XPath n'est pas de sélectionner ce que vous voulez. Merci.
Je suis en utilisant la logique suivante: Si (!=(webelement.xpath("").isDisplayed) élément trouvé d'autre ((webelement.xpath("").isDisplayed) l'élément est introuvable. Ici, j'ai utilisé si d'autre boucle pour vérifier l'élément est présent. mais si l'élément n'est pas présent dans le premier cas condtion, il affiche "élément introuvable". S'il vous plaît suggérer.
Relisez mon dernier commentaire, soigneusement.
OriginalL'auteur kjhughes
Double barre oblique
//
signifie tout descendant de noeud du noeud courant dans le code html de l'arbre qui correspond à la localisation.Seule barre oblique
/
signifie nœud qui est un enfant direct de l'actuel.//div[@id='add']//span[@id=addone']
correspondraEt
//div[@id='add']/span[@id=addone']
correspond seulement la deuxième html arbre.OriginalL'auteur Guy
Si vous voyez cette.
Puis
//div[@id='add']//span[@id='addone']
entraînera dans la durée, car la deuxième//
signifie que vous regardez pour n'importe quel enfant par rapport àdiv[@id='add']
qui estspan[@id='add one']
.Si vous souhaitez utiliser une barre oblique
//div[@id='add']/span[@id='addone']
alors bien sûr, vous ne le trouverez pas, car alors vous regardez pour un enfant direct et vous auriez à utiliser//div[@id='add']/ul/li/span[@id='addone']
. Ainsi, la deuxième//
est très utile en évitant supplémentaire de la hiérarchie dans vos requêtes xpath.Vous êtes les bienvenus. Veuillez accepter cette réponse si il est aidé, et poser une nouvelle question concernant le nouveau bouton de recherche de la requête.
Je suis en utilisant la logique suivante: Si (!=(webelement.xpath("").isDisplayed) élément trouvé d'autre ((webelement.xpath("").isDisplayed) l'élément est introuvable. Ici, j'ai utilisé si d'autre boucle pour vérifier l'élément est présent. mais si l'élément n'est pas présent dans le premier cas condtion, il affiche "élément introuvable". S'il vous plaît suggérer.
Vous avez deux bonnes réponses et doivent en accepter un, puis de poser une nouvelle question. Ne pas utiliser les commentaires pour les questions, ne pas coller du code dans les commentaires; et ne gardez pas de vous répéter, à travers les commentaires entre les réponses. Merci.
OriginalL'auteur David Baak