локатор xpath работает в FF3, но не работает в IE7

После перехода от тестирования Firefox к тестированию Internet Explorer некоторые элементы больше не могут быть найдены селеном.

я выследил один локатор:

xpath=(//a[@class='someclass'])[2]

Хотя он работает как следует в Firefox, он не может найти этот элемент в ie. Какие альтернативы у меня сейчас? JS DOM? CSS Selector? Как бы выглядел этот локатор?

Обновить:

Я приведу пример, чтобы высказать свою точку зрения:

<ul>
  <li>
    <a class='someClass' href="http://www.google.com">BARF</a>
  </li>
  <li>
    <a class='someClass' href="http://www.google.de">BARF2</a>
  </li>
</ul>
<div>
  <a class='someClass' href="http://www.google.ch">BARF3</a>
</div>

Следующий xpath не будет работать:

//a[@class='someclass'][2]

В моем понимании это должно быть так же, как:

//a[@class='someclass' and position()=2]

и у меня нет ссылок, которые являются вторым дочерним элементом любого узла. Все, что я хочу, это обратиться к одной ссылке из набора ссылок класса 'someClass'.

13.10.2009 10:15:51
1 ОТВЕТ
РЕШЕНИЕ

Не зная остальной части вашего HTML-источника, трудно дать вам альтернативы, которые гарантированно будут работать. Надеемся, что следующие предложения помогут вам в правильном направлении:

  • //a[@class='someClass'][2]
    Это как твой пример, но парантезы не нужны.

  • //a[contains(@class, 'someClass')][2]
    Это будет работать, даже если в ссылке есть другие классы.

  • css=a.someClass:nth-child(2)
    Это будет работать, только если ссылка является вторым дочерним элементом своего родителя.

Обновить

  • На основании вашего обновления попробуйте следующее:
    //body/descendant::a[@class='someClass'][2]
3
14.10.2009 08:33:33
я согласен с вашим рекомендуемым решением, но вы просто пропустили @, поскольку класс является атрибутом
Rubens Farias 13.10.2009 11:25:47
Правда, я не предоставил контекст, но позвольте мне объяснить мое намерение с помощью этого xpath: эти паратезы определяют набор всех ссылок с указанным классом на странице. И из этого набора я хочу получить доступ ко 2-му элементу. Эти ссылки не являются братьями и сестрами, они могут быть разбросаны по всей странице. Я не знаю другого метода определения местоположения с селеном, кроме xpath, который мог бы добиться такого рода определения местоположения. И остается вопрос, почему это работает не в IE, а в FF. THX
andy droid 13.10.2009 11:55:52
Вы пробовали рекомендуемое решение в IE? Это должно работать просто отлично.
Dave Hunt 13.10.2009 12:29:28
@Rubens Спасибо! Довольно критическая опечатка там! :)
Dave Hunt 13.10.2009 12:30:02
Спасибо за усилия, но это не помогло в моем случае. Я добавил пример кода в приведенном выше описании, чтобы сделать его более понятным.
andy droid 14.10.2009 06:58:44