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

Фотография

Помогите обработать несколько однотипных элементов:)


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

#1 Osa

Osa

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

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Светлая Ольга А

Отправлено 03 января 2011 - 15:43

Добрый всем день!
Использую Селениум RC + Java.
Нужно в GWT дереве последовательно кликнуть на всех узлах с одинаковыми иконками. Делаю примерно так:

		for (int k=1;k<=selenium.getXpathCount("//div[@class='datacenter-ico']").intValue();k++){
			selenium.doubleClick("//div[@class='datacenter-ico'][" + k + "]");
		}

Прекрасно кликает по первому найденному элементу. А дальше вываливается с ошибкой:
Element //div[@class='datacenter-ico'][2] not found.

selenium.getXpathCount("//div[@class='datacenter-ico']") выдает значение 5.
  • 0

#2 ekulgavaya

ekulgavaya

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

  • Members
  • Pip
  • 50 сообщений
  • ФИО:Елена
  • Город:Minsk, Belarus


Отправлено 04 января 2011 - 11:34

Сдается мне, что здесь проблема именно в том, что у нас уже задан атрибут div-a, то есть вот такое должно работать
selenium.doubleClick("//some_parent_element["+k+"]/div[@class='datacenter-ico']");

То есть нужно посмотреть может у всех этих иконок есть одинаковые родители. Чтоб было понятнее вот пример такого кода:
<table>
   	<tr>
       	<td>
              <div class = "datacenter-ico"> 
          	</div>
       	</td>
   	</tr>
   	<tr>
       	<td>
              <div class = "datacenter-ico"> 
          	</div>
       	</td>
   	</tr>
   	<tr>
       	<td>
              <div class = "datacenter-ico"> 
          	</div>
       	</td>
   	</tr>
</table>

Для него должен отрабатывать такой вот xpath
"//tr["+k+"]//div[@class='datacenter-ico']"

  • 0
In God we trust, the rest we test.

#3 Osa

Osa

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

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Светлая Ольга А

Отправлено 04 января 2011 - 11:59

Спасибо!
  • 0

#4 frei_by

frei_by

    Постоянный участник

  • Members
  • PipPipPip
  • 177 сообщений
  • ФИО:Дмитрий

Отправлено 04 января 2011 - 14:26

Я бы посоветовал через XPath привязыватся к ближайшему статическому элементу.
"//tr["+k+"]//div[@class='datacenter-ico']"

будет выбирать любые ноды (теги) <tr> c самого начала документа по порядку ["+k+"] и для каждого найденного <tr> искать первый попавшийся <div class='datacenter-ico'>. Что на мой взгляд может оказатся скользким решением.
  • 0

#5 ekulgavaya

ekulgavaya

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

  • Members
  • Pip
  • 50 сообщений
  • ФИО:Елена
  • Город:Minsk, Belarus


Отправлено 04 января 2011 - 14:39

Это был просто пример, но да, Дмитрий, вы абсолютно правы, нужно добавить вот так
 "//Some_static_element//tr["+k+"]//div[@class='datacenter-ico']"

  • 0
In God we trust, the rest we test.


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

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