Как проверить поле jQuery TokenInput с помощью Selenium - PullRequest
1 голос
/ 27 июля 2011

Я не могу проверить поле Tokeninput в форме с использованием селена. Ситуация такова, что когда мы что-то набираем, это дает список вариантов для выбора, но эти опции не являются частью DOM. Текст заполняет поле, но не выделяет элемент.

Код, который я написал:

Given admin user is on schedule interview page
And he select "obie[1]" and "DHH[1]" from the candidate name(s) auto sugget field

**step defination**
Given /^he select "([^"]*)" and "([^"]*)" from the candidate name\(s\) auto sugget field$/ do |arg1, arg2|

within(:css, "#interview_template_candidate_names_input") do

    fill_in('tmp',:with => arg1)              --tmp is name of the token input field
    find("li:contains('obie[1])'").click
    save_and_open_page
  end
 end

1 Ответ

4 голосов
/ 20 сентября 2011

Мне наконец удалось сделать эту работу.Вот суть: https://gist.github.com/1229684

Список является частью dom (div.token-input-dropdown), он добавлен как последний дочерний элемент элемента body, поэтому, вероятно, вы его не видели.

Если вы понимаете, что делает плагин tokeninput, вы можете лучше понять, что вам нужно делать.Для каждого создаваемого токена плагин:

  1. создает ul.token-input-list (непосредственно перед input#your_input_id)
  2. создает ul.token-input-list input#token-input-your_input_id
  3. , скрывающий input#your_input_id
  4. создает div.token-input-dropdown

Таким образом, наиболее сложной задачей является поиск правильного ul.token-input-list, потому что вы должны найти его, основываясь на его положении относительно исходного вводаи селеновый веб-драйвер не позволяет вам перемещаться по домам.

После этого вы просто заполняете input#token-input-your_input_id и "click" в опции div.token-input-dropdown li, которая соответствует тому, что вы ищетедля.

...