2015-11-05 149 views
0

我正在尋找一些使用水豚測試框架的Selectize jQuery插件的驗收測試的幫助。Selectize水豚驗收測試

我們正與Selectize勾畫出它生成的HTML的方式有問題,沒有包含在下拉

內選擇下拉列表和值之間沒有明確的聯繫正如你可以從這裏我的jsfiddle看到:http://jsfiddle.net/et4t20wz/

$('.test').selectize({ create: false, dropdownParent: 'body' });

查看源代碼,含div有其內的3個選擇併爲下拉的值被包含在主體標籤內。

我需要一種讓我們的測試團隊能夠在兩個元素之間創建1 - 1連接的方法。到目前爲止,我們已經提出了一個相當薄弱的聯繫,因爲我們知道第一個Selectize值將存儲在第一個div中.selectize-dropdown我們可以使用該邏輯映射到第一個div。選擇控制

這個是相當脆弱的,可能不是最好的方法,但迄今爲止我們可以提出最好的方法。我們在網上找到了一些解決方案,但遺憾的是,它們似乎已經過時或依賴於不同的DOM結構。

例如:http://climber2002.github.io/blog/2014/09/22/capybara-integration-tests-with-jquery-selectize/

希望我們不是唯一的已經進來這個問題,有人接觸可以提供一些幫助/諮詢提前

感謝。

回答

0

所以我們設法用一個解決方案,我發現這裏解決這個問題:但是 Capybara integration tests with jquery.selectize

的代碼並沒有真正的工作。所以我最終使用了我寫的腳本。

var selectize = jQuery('#key').selectize()[0].selectize; 

    jQuery(selectize.setValue(selectize.search('#value').items[0].id)); 
1

我認爲該鏈接是在HTML剛剛位置時,兩個div組成一個一個selectize控制是選擇元素轉換後立即插入。因此,如果你知道原來的ID選擇,你應該能夠使用的同胞選擇

page.find(:css, '#test + div.selectize-control + div.selectize-dropdown') 

page.first(:css, '#test ~ div.selectize-dropdown') 

,以獲得相關的div如果你已經點擊了div.selective-控制(或者其中的輸入),那麼.selectize-dropdown中的元素應該是可見的,你可以點擊它們

+0

謝謝你的幫助,湯姆。我們最終設法使用jQuery修復它。我們使用的方法允許我們爲每個下拉列表編寫特定的測試:儘管支持! – Coderrrr

+0

好的,只是讓你意識到通過jquery/execute_script這樣做並不像真正的用戶 - 雖然對你的測試可能沒問題,但這一切都取決於你測試的是什麼 –

+0

我同意。在我們的例子中,測試更多的是數據完成而不是用戶測試,因此執行jQuery腳本是可以的 – Coderrrr