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

Фотография

Не могу кликнуть по check-box в Selenium IDE


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

#1 mosketrem

mosketrem

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

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


Отправлено 13 января 2011 - 19:49

Впервые с таким столкнулся, раньше такого не было. Сто раз перепроверил локатор в команде click(), все равно не работает.
Ниже скриншот проблемного чек-бокса в файрбаге. Как видите, ничего особенного, кроме того, что почему-то его бледным показывает.
Изображение
А вот код:
<tr>
	<td>click</td>
	<td>//div[@class='FormCheckBox']/table/tbody/tr[1]/td[1]/span/input[@type='checkbox']</td>
	<td></td>
</tr>
Я пробовал разные вариации локатора. Все равно не кликает.

У кого-то такое бывало ? Кто-то может что-то посоветовать ?
  • 0

#2 Mad Cat

Mad Cat

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

  • Members
  • PipPipPip
  • 222 сообщений
  • ФИО:Александр Балабанов
  • Город:Киев

Отправлено 13 января 2011 - 21:01

Как видите, ничего особенного, кроме того, что почему-то его бледным показывает.

Если я не ошибаюсь, то «бледность» означает то, что он сейчас фактически скрыт в DOM-e (вот selenium и спотыкается на нем). Он визуально виден в отрендеренной странице?
  • 0

#3 mosketrem

mosketrem

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

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


Отправлено 13 января 2011 - 22:03


Как видите, ничего особенного, кроме того, что почему-то его бледным показывает.

Если я не ошибаюсь, то «бледность» означает то, что он сейчас фактически скрыт в DOM-e (вот selenium и спотыкается на нем). Он визуально виден в отрендеренной странице?

Конечно видно. Я сам думал о том, что бледность означает сокрытие. Но при проверке наличия элемента на странице (verifyElementPresent()) получаю положительный результат. В то же время просьба к Selenium подсветить элемент с указанным локатором (кнопка Find)не дает желаемого результата: ничего не подсвечивается, но и ошибка не выводится.
  • 0

#4 adzynia

adzynia

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

  • Members
  • PipPipPip
  • 210 сообщений
  • ФИО:Дзыня Андрей


Отправлено 13 января 2011 - 22:23



Как видите, ничего особенного, кроме того, что почему-то его бледным показывает.

Если я не ошибаюсь, то «бледность» означает то, что он сейчас фактически скрыт в DOM-e (вот selenium и спотыкается на нем). Он визуально виден в отрендеренной странице?

Конечно видно. Я сам думал о том, что бледность означает сокрытие. Но при проверке наличия элемента на странице (verifyElementPresent()) получаю положительный результат. В то же время просьба к Selenium подсветить элемент с указанным локатором (кнопка Find)не дает желаемого результата: ничего не подсвечивается, но и ошибка не выводится.

Mad Cat прав.
Попробуйте assertVisible. Это как раз таки проверка на видимость элемента. assertElementPresent проверяет только наличие тега в DOM-моделе.
  • 0

#5 mosketrem

mosketrem

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

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


Отправлено 14 января 2011 - 08:34

Верно, команда verifyVisible() возвращает отрицательный результат. Странно. Но почему же я этот чекбокс ВИЖУ ?! И команда click() проходит без ошибки (правда не делает чекбокс отмеченным).
  • 0

#6 Leoxa

Leoxa

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

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

Отправлено 14 января 2011 - 09:03

попробуйте вместо команды клика отправить команду нажатия клавиши клавиатуры ("пробел", например).
  • 0

#7 mosketrem

mosketrem

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

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


Отправлено 14 января 2011 - 09:18

попробуйте вместо команды клика отправить команду нажатия клавиши клавиатуры ("пробел", например).

ничего...

Разговаривал с девелоперами, выяснял что за контрол такой чудесный и нельзя его сделать заурядным ? Меня вежливо послали лесом. К счастью выяснилось, что при клике по тексту, который рядом с этим чекбоксом, происходит то же, что при клике по самому чекбоксу: он отмечается. А этот текст уже не "невидимый". Так что буду по нему кликать селениумом. Всем спасибо за проявленный интерес.
  • 0

#8 Freiman

Freiman

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 591 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

Отправлено 14 января 2011 - 10:49

Разговаривал с девелоперами, выяснял что за контрол такой чудесный и нельзя его сделать заурядным ? Меня вежливо послали лесом.

это какой-то нестандартный контрол?
  • 0

#9 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 14 января 2011 - 12:23


Разговаривал с девелоперами, выяснял что за контрол такой чудесный и нельзя его сделать заурядным ? Меня вежливо послали лесом.

это какой-то нестандартный контрол?

Скорее всего на него или на текстовое поле наложены дополнительные обработчики событий. Вот поэтому ,если мы обращаемся к элементу напрямую, то он ведет себя не так, как ожидалось, так как пропущено ряд событий.
  • 0

#10 mosketrem

mosketrem

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

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


Отправлено 14 января 2011 - 13:33

Вот что мне девелопер написал

в ХТМЛ есть понятие блоковый и инлайновый элемент. также есть понятия дочерний тег и текст тега
так вот. ГВТ чекбокс рендерит включённым в тег span
span - инлайновый элемент
браузер прячет все инлайновые элементы у которых нет текста и пох сколько у них дочерних элементов
тут выхода 2
либо делать всем этим спанам вокруг чекбоксов в стилях display: block
сие опасно ибо поплывёт вёрстка
или добавлять внутрь обрамляющего спана например &nbsp;
и браузер будет считать что у него есть текст


  • 0

#11 MDiscovery

MDiscovery

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

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Федорчук Марина Владимировна

Отправлено 07 декабря 2012 - 14:25

попробуй clickAt(). Мне помогает как для radio buttons, так и для check boxes.
  • 0


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

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