2010-04-28 5 views
3

Включен ли браузер watitor.text.include? считать текст внутри невидимых divs? Если да, то как искать только видимый текст?Поддерживает ли браузер watitor браузер? считать текст внутри невидимых divs? Если да, то как искать только видимый текст?

Я поместил все инструкции в html с самого начала и использовал jQuery, чтобы скрыть и отобразить соответствующие части.

Как я могу использовать официанта Ватира, чтобы ждать только видимого текста?

Моя проблема в том, что официант всегда возвращает true, даже до того, как я сделал видимым определенный текст.

ответ

1

Что случилось с:

text_from_all_my_visible_divs = br.div(:id, 'divs I care about').divs.select do |div| 
    text_i_care_about(div) && div.visible? 
end 

def text_i_care_about(div) 
    div.text =~ /regexp/ 
end 

.Visible? находится в единичных тестах, является официальным, не бойтесь его :)

Alan

+0

Спасибо. Похоже на хорошее решение.Он еще не сканирует какой-либо текст, поэтому я бы поискал текст, который я ищу внутри text_from_all_my_visible_divs, в следующей строке? karlthorwald - иначе – user89021

+0

Таким образом, вы можете сделать это: text_from_all_my_visible_divs = br.div(:id, 'divs I care about').divs.select do |div| has_text_i_care_about(div) && div.visible? end def has_text_i_care_about(div) div.text ~= /some regexp/ end

+0

нормально, я не знаю, как это сделать форматирование кода и он не позволит мне изменить выше комментарий, дайте мне знать, если это не ясно –

0

include? видит весь текст, а не только видимый текст. См. Билет WTR-433 для получения более подробной информации.

Существует Element#visible? метод, который официально не поддерживается (насколько я знаю).

Что вы пытаетесь сделать? Если у вас много текста на странице и вы хотите показать только некоторые из них, вы можете поместить текст в несколько div и посмотреть, является ли div видимым.

+0

спасибо. я попытаюсь написать свою собственную видимую функцию, которая использует Element # visible. karlthorwald - aka – user89021

+0

Я использую скрытые divs тяжело, представьте себе что-то вроде «мастера» с несколькими этапами, но каждый этап - скрытый div на той же странице html. Я делаю divs видимыми один за другим. поэтому мне не нужно уничтожать контент и позже его воссоздавать. (если пользователь возвращается на один этап!), я думал, что это обычная практика. но для проверки в watir, если один этап завершен, а следующий отображается, мне нужно проверить содержимое, которое на самом деле отображается. Интересно, почему билет WTR 433 был закрыт. я считаю, что для инструмента тестирования браузера лучше проверить видимый текст. karlthorwald - aka – user89021

+0

проверка невидимого текста была бы приятным дополнением, но проверка видимого текста была бы первым, что я ожидал. с точки зрения пользователя. karlthorwald - aka – user89021

3

Не используйте текстовый метод Watir. Это очень быстро и грязно, и у него много опасений, многие даже не связаны с этой проблемой о видимом тексте. Разработчики тестов Solid Watir избегают этого. Я почти никогда не использую его сам, и только когда я делаю что-то очень быстро и грязно. Кроме того, он реализован по-разному с разными браузерами.

Вместо этого вы должны получить доступ к тексту, который вам нужен, с точки зрения фактического элемента, в котором он находится. Вам следует ссылаться на div или что-то еще.

+0

Благодарим вас за эту ценную информацию – user89021