открыть определенную часть страницы с селеном - PullRequest
2 голосов
/ 17 февраля 2012

У меня веб-страница выглядит примерно так:

<html>
...
<div id="menu">
...
  <ul id="listOfItems">
  <!--- repeated block start -->
    <li id="item" class="itemClass">
    ...
    <span class="spanClass"><span class="title">title</span></span>
    ...
    </li>
  <!-- repeated block end-->
    <li id="item" class="itemClass">
    ...
    <span class="spanClass"><span class="title">title something</span></span>
    ...
    </li>
    <li id="item" class="itemClass">
    ...
    <span class="spanClass"><span class="title">title other thing</span></span>
    ...
   </li>
 </ul>
 ...
 </div>
 ...
 </html>

Я хотел бы знать, каков xpath заголовков («title», «title что-то», «title другие вещи»). Дело в том, что порядок элементов <li> не указан. Это может отличаться после каждой загрузки страницы. Есть ли способ, как обнаружить определенную структуру страницы с помощью xpath? У меня есть представление о том, как решить эту проблему, но прежде чем я собираюсь написать итерации с C#, чтобы открыть страницу, которую я спрашиваю.

Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 17 февраля 2012

Прежде всего, идентификаторы должны быть уникальными, поэтому отображаемая веб-страница не будет работать хорошо, когда дело доходит до тестирования.

Однако я провел тестирование и заставил работать некоторые локаторы XPath для выбора определенных заголовков (хотяЯ рекомендую вам исправить свою веб-страницу, вместо того, чтобы использовать это):

//li[@id='item']/span/span
//li[@id='item'][1]/span/span
//li[@id='item'][3]/span/span

Если вы после всех трех названий, вы можете попробовать предложение Дмитрия Новатчева:

//span[@class='title']

Это должно получить все заголовки на странице.

Я хотел бы сказать одну вещь, однако, если вы попадаете в Selenium, я рекомендую вам скачать SeleniumIDE расширение для Firefox.Это отличный инструмент для начинающих.Он помогает вам выполнять тесты Selenium, регистрируя ваши клики на веб-сайте, а также автоматически генерировать и тестировать локаторы XPath и другие локаторы.

И снова: я призываю вас не делатьсайт с дублирующимися элементами id: -)

2 голосов
/ 17 февраля 2012

Поддерживает ли Selenium выражения XPath, такие как:

//span[@class='title']

Если да, чем использовать приведенное выше выражение XPath.Он выбирает каждый элемент span в документе XML, чей атрибут class имеет строковое значение "title".

Я рекомендую использовать такой инструмент, как Визуализатор XPath для воспроизведения с различными выражениями XPath и просмотра выделенных узлов, выделенных в исходном XML-документе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...