локатор xpath работает в FF3, но не работает в IE7 - PullRequest
2 голосов
/ 13 октября 2009

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

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

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

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

Обновление:

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

<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.

1 Ответ

3 голосов
/ 13 октября 2009

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

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

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

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

1025 ** * Обновление 1026

*
  • На основании вашего обновления попробуйте следующее:
    //body/descendant::a[@class='someClass'][2]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...