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

Фотография

Не могу подобраться к чекбоксу


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

#1 raa

raa

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

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Алексей

Отправлено 25 марта 2014 - 12:06

Всем доброго дня, прошу помощи

 

есть таблица с документами, напротив каждого из документов можно отмечать чекбокс, у каждого из документов есть значения в соответствующих колонках. До определенного дня "X" я находил и кликал нужный мне чекбокс определенного документа по следующей цепочке из 3х значений 

 

driver.findElement(By.xpath("//td/a[contains(text(), 'Согласован')]/../td[contains(text(), '666')]/../td/input[@type='checkbox']")).click(); 

 

Но вот настал день "X" и программеры сделали одно из значений кликабельной ссылкой, что теперь не позволяет мне обратиться к определенному чекбоксу определенного документа... 

 

Проверяю через Firepath - объект //td/a[contains(text(), 'Согласован')] корректно находится, но в комплекте //td/a[contains(text(), 'Согласован')]/../td[contains(text(), '666')]/../td/input[@type='checkbox'] - не фурычит, наверное я неправильно определяю..

 

вот код строки 

 

 

 

 

 

Прикрепленные файлы

  • Прикрепленный файл  image2.png   735,24К   1 Количество загрузок:

  • 0

#2 vmaximv

vmaximv

    Опытный участник

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 25 марта 2014 - 13:08

Если вы так активно используете "..", то наверное понимаете, что это такое?

Куда мы придем, если он тега <a> двинемся в сторону ".."?


  • 0

#3 220v

220v

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

  • Members
  • PipPip
  • 107 сообщений
  • ФИО:Олег


Отправлено 25 марта 2014 - 14:14

.//div[contains(text(),'Согласование')]/../preceding-sibling::td[2]/a


td[2]  - здесь индекс попробуйте поменять

Возможно я ошибся в xpath, но копать надо в сторону preceding-sibling


  • 1

#4 sttester

sttester

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

  • Members
  • PipPip
  • 111 сообщений

Отправлено 26 марта 2014 - 08:22

Киньте скриншот,где сам этот чекбокс выделен firebug'ом


  • 0

#5 raa

raa

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

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Алексей

Отправлено 26 марта 2014 - 09:17

.//div[contains(text(),'Согласование')]/../preceding-sibling::td[2]/a


td[2]  - здесь индекс попробуйте поменять

Возможно я ошибся в xpath, но копать надо в сторону preceding-sibling

 

спасибо за помощь, толкнули в правильном направлении

 

т.к. чекбокс является "братом" поля статуса документа, подобрался вот так:

 

.//a[contains(text(),'Согласование')]/../preceding-sibling::td/input[1]

 

p.s. Всем спасибо


  • 0

#6 vmaximv

vmaximv

    Опытный участник

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 26 марта 2014 - 09:29

Использовать оси и возврат на уровень выше в данном, простейшем случае, не очень уместно.

 

//tr[contains(.,'Согласование')]//input[@type='checkbox']


  • 1

#7 raa

raa

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

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Алексей

Отправлено 26 марта 2014 - 09:32

такой вариант тоже прекрасно работает, спасибо Максим!


  • 0


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

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