Перейти к содержимому

Фотография

обращение к элементу через xpath


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 alexey1984

alexey1984

    Новый участник

  • Members
  • Pip
  • 4 сообщений

Отправлено 25 октября 2011 - 11:22

на странице есть несколько элементов с id вида dp1234566789, каждый раз id разный, но всегда начинается с dp. Подскажите, пожалуйста, как в selenium указать второй, третий и т.д. такой элемент. Для первого работает //input[starts-with(@id,'dp')]
  • 0

#2 Skuayer

Skuayer

    Активный участник

  • Members
  • PipPip
  • 115 сообщений
  • ФИО:Жуков Анатолий Викторович
  • Город:Санкт-Петербург

Отправлено 25 октября 2011 - 11:33

вы бы показали пример страницы, чтоб что-то советовать....

грубо говоря, вам надо построить xpath, который вернет массив этих элементов
//input[starts-with(@id,'dp')][3] - это если они на одной ветке
  • 0

#3 Demetri

Demetri

    Активный участник

  • Members
  • PipPip
  • 143 сообщений
  • ФИО:Дмитрий
  • Город:Podgorica, MNE


Отправлено 25 октября 2011 - 11:52

Используется Selenium RC или Webdriver?
Если RC, то решение написал Skuayer, если Webdriver, то может использование findElements(?)
  • 0
Hi! I'm a signature virus. Copy me into your signature to help me spread.

#4 alexey1984

alexey1984

    Новый участник

  • Members
  • Pip
  • 4 сообщений

Отправлено 08 ноября 2011 - 06:43

Используем Selenium RC и IDE, сейчас смотрю через IDE.
Вот пример страницы www.pososhok.ru/raileurope .
То есть я кликаю Selenium'ом несколько раз на "Добавить пассажира", открываются поля для ввода дат рождения и нужно обратиться ко второму, третьему и т.д. полю.
Через //input[starts-with(@id,'dp')][2] что-то не работает.

<div class="travveler" index="0">
<span class="form-col lastnames">
<input type="text" size="20" name="RaileuropeForm.travvelers.lastname.0" value="">
<span class="valPlace"></span>
<span class="errorField"></span>
</span>
<span class="form-col firstnames">
<input type="text" size="20" name="RaileuropeForm.travvelers.firstname.0" value="">
<span class="valPlace"></span>
<span class="errorField"></span>
</span>
<span class="form-col birthdates">
<input id="dp1320733674719" class="tooltip_date tooltip_grey hasDatepicker" type="text" size="10" name="RaileuropeForm.travvelers.birthday.0" value="" style="background-color: rgb(255, 255, 255);">
<img class="ui-datepicker-trigger" src="/pososhok/export/system/modules/com.gridnine.opencms.modules.pososhok/resources/pics/cal.gif" alt="..." title="...">
<span class="valPlace"></span>
<span class="errorField"></span>
</span>
<div class="clear"></div>
</div>
<div class="travveler" index="1">
<span class="form-col lastnames">
<input type="text" size="20" name="RaileuropeForm.travvelers.lastname.1" value="">
<span class="valPlace"></span>
<span class="errorField"></span>
</span>
<span class="form-col firstnames">
<input type="text" size="20" name="RaileuropeForm.travvelers.firstname.1" value="">
<span class="valPlace"></span>
<span class="errorField"></span>
</span>
<span class="form-col birthdates">
<input id="dp1320733674720" class="tooltip_date tooltip_grey hasDatepicker" type="text" size="10" name="RaileuropeForm.travvelers.birthday.1" value="">
<img class="ui-datepicker-trigger" src="/pososhok/export/system/modules/com.gridnine.opencms.modules.pososhok/resources/pics/cal.gif" alt="..." title="...">
<span class="valPlace"></span>
<span class="errorField"></span>
</span>
<span class="form-col deletetravveler">
<a class="travveler" onclick="RaileuropeUtil.deleteTravveler(this)" href="javascript:void(0)">Удалить</a>
</span>
<div class="clear"></div>
</div>

  • 0

#5 Demetri

Demetri

    Активный участник

  • Members
  • PipPip
  • 143 сообщений
  • ФИО:Дмитрий
  • Город:Podgorica, MNE


Отправлено 08 ноября 2011 - 07:10

Для использования индекса, надо чтобы элементы имели одного родителя. Вот, например, такой большой и страшный xpath будет выбирать вторе поле для ввода даты рождения:
//input[starts-with(@id,'dp')]/../../../div[2]//input[starts-with(@id,'dp')]

  • 0
Hi! I'm a signature virus. Copy me into your signature to help me spread.


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных