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

обращение к элементу через xpath
Автор alexey1984, 25 окт 2011 11:22
Сообщений в теме: 4
#1
Отправлено 25 октября 2011 - 11:22
#2
Отправлено 25 октября 2011 - 11:33
вы бы показали пример страницы, чтоб что-то советовать....
грубо говоря, вам надо построить xpath, который вернет массив этих элементов
//input[starts-with(@id,'dp')][3] - это если они на одной ветке
грубо говоря, вам надо построить xpath, который вернет массив этих элементов
//input[starts-with(@id,'dp')][3] - это если они на одной ветке
#3
Отправлено 25 октября 2011 - 11:52
Используется Selenium RC или Webdriver?
Если RC, то решение написал Skuayer, если Webdriver, то может использование findElements(?)
Если RC, то решение написал Skuayer, если Webdriver, то может использование findElements(?)
Hi! I'm a signature virus. Copy me into your signature to help me spread.
#4
Отправлено 08 ноября 2011 - 06:43
Используем Selenium RC и IDE, сейчас смотрю через IDE.
Вот пример страницы www.pososhok.ru/raileurope .
То есть я кликаю Selenium'ом несколько раз на "Добавить пассажира", открываются поля для ввода дат рождения и нужно обратиться ко второму, третьему и т.д. полю.
Через //input[starts-with(@id,'dp')][2] что-то не работает.
Вот пример страницы 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>
#5
Отправлено 08 ноября 2011 - 07:10
Для использования индекса, надо чтобы элементы имели одного родителя. Вот, например, такой большой и страшный xpath будет выбирать вторе поле для ввода даты рождения:
//input[starts-with(@id,'dp')]/../../../div[2]//input[starts-with(@id,'dp')]
Hi! I'm a signature virus. Copy me into your signature to help me spread.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных