Как заставить события кликов работать при объединении элементов в Watir? - PullRequest
1 голос
/ 06 октября 2010

Я пытаюсь настроить тестирование пользовательского интерфейса в Watir для нашего веб-приложения.У меня проблемы с получением событий щелчка для распространения.Мы используем EXTJS для создания вкладок, которые находятся в результирующем html.

Если я выберу диапазон, подобный этому, он будет работать:

span1 = @browswer.span(:text=>"Tab Name")
span1.click

Проблема в том, что у меня есть вложенная вкладка с тем же именем и я хочу иметь возможность различать их.Единственный способ, которым я нашел, чтобы выбрать вложенную вкладку в явном виде, это сначала выбрать список, в котором находится вложенная вкладка, а затем выбрать вложенную вкладку из этого.

ul = @browser.ul(:class=>/tab-strip-bottom/)
span2 = ul.span(:text=>"Tab Name")
span2.click

span2.click, кажется, нечто-нибудь.Единственное отличие (я вижу) между span1 и span2 - это атрибут контейнера.span1. @ container = @browser, span2. @ container = ul.

Я попытался установить контейнер на span2 с помощью

span2.instance_variable_set("@container", @browser)

, но потом все равно нажал на неправильную вкладку.Есть мысли по этому поводу?Спасибо!

Ответы [ 4 ]

1 голос
/ 06 октября 2010

Пожалуйста, поделитесь HTML-кодом, я даже не понимаю проблему.

Может быть, вам нужно запустить какое-то событие JavaScript.См. Как узнать, какие события JavaScript сработали?

0 голосов
/ 16 октября 2010

У нас было меню веб-страницы с несколькими уровнями, похоже на то, что у вас есть. Мышь выпадет из второго уровня меню при переходе к следующему выбору (прямо по диагонали), и второй уровень меню закроется. Это то, о чем ты говоришь? Мы решили это, запустив javascript, потому что пункты меню назывались javascript (решение Желько). Нам просто нужно отметить идентификаторы пунктов меню. Не уверен, что это уродливее или красивее решения xpath. Я говорю «мы», потому что мне нужна была помощь.

0 голосов
/ 16 октября 2010

Вы можете указать индекс для использования при наличии нескольких совпадающих объектов. Это работает для вас?

@browser.span(:text=>"Tab Name", :index => 2).click

Значения индекса относятся к контейнеру, в котором вы ищете. Таблицу всех возможностей, которые можно использовать при поиске объектов, смотрите: HTML-элементы, поддерживаемые Watir

0 голосов
/ 07 октября 2010

Я наконец-то решил проблему с xpath.

tab = @browser.element_by_xpath(".//*[contains(@class,'x-tab-strip-top')]//*/em/span/span[. =\"#{value}\"]") 
tab.click

Это не идеально, потому что код xpath довольно уродлив.Если возможно выбрать элемент с помощью селекторных «конфетных» watir, это было бы намного лучше для удобства обслуживания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...