À l'aide de Sélénium, xpath ne trouve pas de texte de l'élément
Je suis nouveau sur le Sélénium et avez un problème pour trouver un élément par XPath. J'ai essayé de traiter ce problème, mais a passé trop de temps sur elle, et elle ne fonctionne toujours pas.
Je suis en train d'automatiser le téléchargement de fichier à partir de cette site.
Je suis à la recherche de l'élément qui contient le nom de version et ensuite j'ai besoin de cliquer sur l'icône de téléchargement en conséquence.
Je suis en train d'écrire le code suivant afin de trouver l'élément
var element1 = driver.FindElement(By.XPath("//*[@id='versiontable']/div[3]/a[Text()='Firefox 22.0 (Beta 2)']"));
Toutefois, cela ne fonctionne pas, l'élément ne peut pas être trouvé.
Et après j'ai besoin de cliquer sur un icône de téléchargement en conséquence. Je ne suis pas sûr de savoir comment cliquez sur élément qui est pertinent pour la version actuelle de firefox. Des suggestions?
- Le XPath semble incorrect. Essayez de Firepath ou d'une même outil pour être en mesure de vérifier vos expressions XPath dans Firebug (ou utilisez le console de Firebug). Aussi, je voudrais essayer
//*[@id='versiontable']/div[3]//a[text()='Firefox 22.0 (Beta 2)']
(utilise//a
pour correspondre plus profonda
éléments - pas sûr au sujet de ladiv[3]
partie, tout de même) ou plutôtBy.linkText()
. - Merci pour les conseils. J'ai téléchargé Firepath et il semble très utile.
Vous devez vous connecter pour publier un commentaire.
Tout d'abord la fonction xpath
text()
a écrit en minuscules.Aussi le lien d'entrée que vous recherchez n'est pas le troisième (3) div.
Parce que le téléchargement direct est le lien dans la balise div class="droite".
Veuillez essayer ceci:
//div/div[@class='right']/a[text()='Firefox 22.0 (Beta 2)']
dans ce cas. Dans le cas où il y aurait plusieursa
éléments à l'intérieur de la div, il ne serait même pas être correct, car il trouvera tous lesa
éléments."//div/div/a[text()='Firefox 22.0 (Beta 2)']/../../div[@class='right']/a
. Sélectionnez le lien de gauche reportez-vous aux étapes (les parents) en arrière et sélectionner le "bon". (Je préfère la première solution).Pourquoi n'utilisez-vous pas
By.linktext
, semble beaucoup plus facile pour moi?Cependant, la raison de votre XPath n'est pas le travail, c'est qu'il ne correspond pas à la structure de la page web.
div[3]
ne signifie pas trois divs dans une hiérarchie l'un après l'autre, mais cela signifie que le troisièmediv
dans le prochain niveau de la hiérarchie. Vous auriez besoin de quelque chose comme ceci à la place