2010-12-07 20 views
0

Je me bats pour écrire un xpath qui m'aidera à trouver l'image pour popup.gif ci-dessus basée sur le nom connu de l'élément td, comme dans ce cas "un" et "deux" .luttant pour obtenir le droit xpath pour l'image pop-up

+0

J'ai du mal à écrire un xpath qui m'aidera à trouver l'image pour popup.gif ci-dessus basée sur le nom connu de l'élément td, comme dans ce cas "un" et "deux". – doneright

+0

Exemple d'entrée manquant –

Répondre

2

Votre question pourrait être mieux résolue avec un contexte supplémentaire. Toutefois, si vous êtes simplement à la recherche de la balise d'image qui des liens vers « popup.gif » en supposant qu'il n'y a pas d'URL, vous pouvez utiliser une recherche de documents à l'échelle assez simple:

//img[@src="popup.gif"] 

Si vous une URL complète ou un parent URL ne figurant pas dans le même dossier est utilisé pour lier à "popup.gif", et vous n'êtes pas entièrement sûr de ce que l'URL sera dans un environnement donné, vous pouvez utiliser une correspondance d'expression régulière sur la chaîne de l'attribut src.

//img[matches(@src, "popup\.gif")] 

Pour utiliser l'attribut name pour correspondre, vous pouvez également faire des rencontres basées sur le chemin comme suit:

//td[@name="one"]/img 

Cela correspond à la structure suivante. Cette expression peut être excessivement générique, elle dépend fortement de la structure de votre document.

+1

'matches()' est une fonction XPath 2.0. De plus, vous n'avez pas besoin d'échapper quoi que ce soit à l'exception des caractères spéciaux de RegExp, donc 'popup \ .gif' est suffisant –

+0

@Alejandr: Merci de votre temps pour jeter un coup d'oeil sur mon problème. Je suppose que je devrais avoir la structure complète de doc pour obtenir une image claire. Voici un extrait. – doneright

+0

\t cliquez \t // div [@ id = 'myid']/table/tbody/tr [2]/td [3]/img \t \t cliquez \t // div [@ id = 'myid']/table/tbody/tr [3]/td [3]/img \t \t cliquez \t // div [@ id = 'myid']/table/tbody/tr [4]/td [3]/img \t – doneright