Je lutte contre ce problème toute la journée mais sans aucun résultat. J'utilise WebDriver de sélénium et que vous souhaitez obtenir deux chaînes par XPath:Problème avec la requête XPath dans IE
<input id="FB_childRec1_0" type="hidden" value="child12_0,child22_0,child13_0,child23_0,child14_0,child24_0" size="1"/>
et
<input id="FB_childRec4_0" type="hidden" value="child15_0,child25_0,child16_0,child26_0,child17_0,child27_0,child18_0,child28_0,child19_0" size="1"/>
de ce code:
<tbody>
<input id="cidChild1_0" type="hidden" value="T3$PATENT$US7381548B220080603"/>
<input id="cidChild1_0" type="hidden" value="T3$PATENT$US7381548B220080603"/>
<tr id="FORWARD_1US7381548B220080603_0" class="alternate" style="" name="childTR">
<td class="tborder leftAlignment" rowspan="1" style="width:1%">
<td class="tborder leftAlignment vTop" rowspan="1" style="width:1%">
<input id="FB_childRec1_0" type="hidden" value="child12_0,child22_0,child13_0,child23_0,child14_0,child24_0" size="1"/>
<td class="tborder leftAlignment vTop" rowspan="1" style="width:1%">
<td class="frmData tborder vTop" align="left" rowspan="1" colspan="5">Forward Citation - (Displaying 3 forward citations)</td>
</tr>
<input id="cidChild4_0" type="hidden" value="T3$PATENT$US7381548B220080603"/>
<tr id="BACKWARD_4US7381548B220080603_0" class="alternate" style="" name="childTR">
<td class="tborder leftAlignment" rowspan="1" style="width:1%">
<td class="tborder leftAlignment vTop" rowspan="1" style="width:1%">
<input id="FB_childRec4_0" type="hidden" value="child15_0,child25_0,child16_0,child26_0,child17_0,child27_0,child18_0,child28_0,child19_0" size="1"/>
<td class="tborder leftAlignment vTop" rowspan="1" style="width:1%">
<td class="frmData tborder vTop" align="left" rowspan="1" colspan="5">Backward Citation - (Displaying 14 backward citations)</td>
</tr>
</tbody>
J'utilise cette requête XPath: //tbody/tr[@id[contains(.,'US7381548B2')]]//input
Dans le code, c'est:
driver.FindElements(By.XPath("//tbody/tr[@id[contains(.,'" + queryArray[i] + "')]]//input"));
Tout fonctionne parfaitement dans firefox et je peux obtenir 2 éléments. Mais dans IE FindElements() ne trouve rien. Je l'ai essayé sur IE8 et IE9 sans aucun résultat. J'ai mis à jour Selenium WebDriver à 2.0.0 mais cela n'aide pas. Ensuite, je pense que l'application donne une source différente pour FF et IE. Donc, je sauve la page de IE et l'ouvre avec FF. Firepath me montre deux matchs, donc la source est la même.
Tout cela me fait penser que c'est un bug de sélénium, parce que je fais face à ce genre de problème pour la deuxième fois. Il y a beaucoup de sujets avec un problème similaire - les requêtes xpath fonctionnent dans FF mais ne fonctionnent pas dans IE. Mais je ne peux trouver aucune cause de cela. Qu'est-ce qui peut causer un tel comportement étrange du sélénium? Et que dois-je faire pour résoudre le problème?
Oui, vous avez raison. J'ai ajouté le second slash essayant de faire fonctionner XPath et j'ai oublié de l'enlever. Mais avec une seule barre oblique, elle ne fonctionne pas non plus –