2010-01-22 37 views
0

我正在做一些拖放js測試與硒客戶端。它的工作原理(在清楚地顯示要切換位置的元素之前和之後採取screengrabs),但我編程方式斷言發生的變化遇到麻煩。斷言css定位器等於它的預期值

上午我的心理,或者我不能做這樣的事情:

selenium.assert_equal("css locator", "expected id of element")

,在這種情況下,會看起來像:

selenium.assert_equal("css=li:nth-child(1)", "li#list_item_2")

上的任何提示如何實施這將是巨大的。

感謝,

亞當

編輯:如果我有selenium.get_element,將採取選擇並返回它是什麼,然後我可以在下一步執行的斷言。

element = selenium.get_element("css=li:nth-child(1)")

assert_equal(element, "li#list_item_2")

(我想)。

回答

3

您的示例將不起作用,因爲您比較了兩個不相等的字符串。一個辦法斷言,你的元素已經移動是使用isElementPreset如下證明:

//before drag and drop 
assertTrue(selenium.isElementPresent("css=#source li:nth-child(1)")); 
assertFalse(selenium.isElementPresent("css=#target li:nth-child(1)")); 

//drag and drop code here 
... 

//after drag and drop 
assertTrue(selenium.isElementPresent("css=#target li:nth-child(1)")); 
assertFalse(selenium.isElementPresent("css=#source li:nth-child(1)")); 

這個例子使用了Java客戶端API,但它應該是很容易的工作如何做你喜歡的客戶端API中。它也將在很大程度上取決於您的應用程序,因爲上面的內容將檢查id爲'target'的元素在拖放之前有一個子元素li,之後沒有。如果你有一段HTML源代碼,我可能會證明一個更強大的例子。