2013-01-04 40 views
1

我使用的是基於Railscasts js代碼添加新課程到我的頁面中選擇從動態添加JS水豚的選項。基於時間的ID

當使用RSpec和水豚測試,我怎麼選擇一個動態生成的選擇菜單中的選項,基於時間的唯一ID?

我的想法,就是要最終所有的選擇菜單,並抓住最後一個,但沒有與我一下。

Rspec的代碼:

 click_link "Edit " 
     click_link "Add Another Lesson" #this then uses JS to put another select menu on the screen. 
     select("Lesson 2", from: "#{ideally it would find the last select tag here}") #this is what i don't know how to find. 

我知道有all但不知道如何使用XPath找到最後選擇標籤。

回答

1

老兄讓我很遠,謝謝@Andrey。

什麼工作對我來說是,對text_field輸入:

all(:css, '.hearter')[0].set "Just Awesome Man"

的選擇標籤:

all(:css, '.js-select')[0].select("1") # "1" was my value

+1

'''選擇'Just Awesome Man',來自:'.hearter''''是我的工作。 –

1

Actions#select只能由名稱,標識或標籤文本找到元素。你沒有它,所以你應該使用Element#select_option。我不知道任何CSS或XPath選擇,所以我認爲你可以使用,這將選擇整個頁面上的最後一個元素:

all('select').last.find(:option, 'Lesson 2').select_option

找到所有的選擇,但僅使用最後一個可能看起來有點醜。它可能會更好地選擇在另一個元素內:

find(some_selector).find('select').find(:option, 'Lesson 2').select_option 
+0

沒有persey工作。對這個問題仍然很抱歉。 – pjammer

+0

@pjammer你能否澄清爲什麼它不起作用,或者你? –

+0

如果我記得它實際上並沒有在生成的選擇器中選擇選項。本週晚些時候我將能夠進入。謝謝。 – pjammer