1

セレンを使用したフォームで 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
4

1 に答える 1

4

私はついにこの作品を作ることに成功しました。要点は次のとおりです: https://gist.github.com/1229684

リストは dom ( div.token-input-dropdown) の一部であり、body 要素の最後の子として追加されます。これがおそらく表示されなかった理由です。

tokeninput プラグインが何をしているかを理解すれば、何をする必要があるかについてより良いアイデアを得ることができます。作成する 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を見つけることです。元の入力に対する相対的な位置に基づいて見つける必要があり、セレン webdriver では dom をナビゲートできないためです。

その後、探しているものに一致するオプションに「」input#token-input-your_input_idと「click」を入力するだけです。div.token-input-dropdown li

于 2011-09-20T17:58:39.870 に答える