2012-10-31 4 views
2

J'ai un problème avec un Xpath que je veux utiliser dans Selenium IDE. D'abord, il est étrange que lorsque je clique avec le bouton droit de la souris sur l'élément, les options du sélénium n'apparaissent pas.Problèmes IDE Selenium avec un nouveau: de XPath

En second lieu, si j'inspecte l'élément avec Firebug une copie XPath, le résultat est le suivant:

//html/body/div/div[4]/new:form/div[3]/table/tbody/tr/td/table/tbody/tr[17]/td[3]/a 

Si j'insère ce chemin en Sélénium un clic sur « trouver » Je reçois le massage que le localisateur n'est pas trouvé. Quand je le lance, il dit: [error] invalide Xpath [2] :(alors le chemin)

Il n'y a pas de problème à trouver

//html/body/div/div[4]/ 

Je pense que le problème est: une partie « nouvelle forme » mais je n'ai pas compris pourquoi ?!

Je n'ai pas accès au code. Mais quand je supprime le "nouveau" dans firebug cela fonctionne. Y at-il une solution à ce problème? Merci

Répondre

0

Dans XPath fourni par l'élément Firebug form est défini dans certains espaces de noms, Firebug utilise new comme préfixe. Je ne sais pas si Selenium supporte XPath avec des espaces de noms. Quoi qu'il en soit, vous pouvez légèrement modifions donné XPath, en utilisant * au lieu de new:form, i.e. .:

//html/body/div/div[4]/*[local-name(.) = 'form']/div[3]/table/tbody/tr/td/table/tbody/tr[17]/td[3]/a 
+0

@downvoter, Voulez-vous commenter? –

+0

Merci. Maintenant, je sais d'où vient la nouvelle forme. J'ai déjà eu l'idée d'utiliser le * mais je n'avais aucune idée de comment. Je vais l'essayer demain au travail. :) – SeleniumNewbe

+0

Merci cela a travaillé =) Seulement avec le *. Très simple mais efficace. Je pense que le ':' était le problème. – SeleniumNewbe

0

Vous pouvez installer Firepath qui est une extension de Firebug .Cette vous donnera XPath plus clair.

+0

Merci. Bon à maintenant à propos de Firepath. Je vais essayer demain au travail. :) – SeleniumNewbe

+0

J'ai installé Firepath mais je n'ai pas pu trouver le 'new: form' Xpath non plus. Peut-être que j'ai mal géré. – SeleniumNewbe

1

Au moment où cette question a été écrite, il n'y avait pas de support approprié dans Selenium pour les espaces de noms dans les expressions XPath. Cependant, that has since been changed. Depuis un certain temps (around March 2015), vous pouvez utiliser les préfixes d'espace de noms tels qu'ils apparaissent dans le document pour sélectionner des éléments.

Avant cela, c'était un peu plus difficile et vous aviez besoin d'une solution comme dans le accepted answer. Maintenant, vous pouvez simplement utiliser l'expression telle que donnée dans la question originale:

//html/body/div/div[4]/new:form....