2015-04-12 18 views
0

我有下面的JavaScript代碼與Jquery在Firefox的控制檯中運行良好。我怎樣才能將這個作爲一個單元測試添加到硒ide中,並將它與預期的真實測試輸出進行比較?我如何讓硒ide運行我的自定義JavaScript與jQuery的,因爲它在Firefox中執行?

// Get text from account row and determine if text is Ascending or Descending 
var tdArray = []; 

$('.sorting_1').each(function(){ 
    $(this).find('strong').each(function(){ 
     tdArray.push(this.textContent); 
    }); 
}); 

// ascending check 
function isSorted(array){ 
    for (var i = 0; i < array.length-1; i++) { 
    if (array[i] > array[i+1]) { 
     return false; 
    } 
} 
    return true; 
} 

isSorted(tdArray); 

回答

0

在我測試的應用程序中,有許多搜索結果可以排序多列。請注意,在我的環境中,一旦對列進行排序,就會有一個排序符號元素指示排序的方向(所有列的默認值在第一次點擊時升序,在第二次點擊時降序)。

click | link = columnheader |
waitForElementPresent | css = th.sortasc | (這是排序脫字符元素)

然後我從該列抓取前兩行(或結果頁面的頂行和底行)中的數據。

storeText | // td/div/a | T1
storeTest | // tr [2]/td/div/a | T2

然後只是比較。

storeEval | var isLess = false; isLess = eval(storedVars ['T1'] < = storedVars ['T2']); | isLess

verifyExpression | $ {isLess} |真正

對於降序排序,我用「isGreater」

+0

例如,如果排序在第500行中斷,該怎麼辦?我的腳本會捕獲該錯誤,這種方法不會。 –

+0

這是真的,但是你是否真的要進行一項測試,以便通過所有300萬行結果(至少,這就是我正在處理的內容)。在大多數情況下,如果數據在前幾頁中正確排序,那麼足以通過該功能。你所指的可能是一個邊緣案例,但沒有任何功能失效。 – Klendathu

+0

問題是,它會抓住邊緣情況,因爲我正在處理的當前表有問題,排序中斷了一半,如果我可以讓硒執行我寫的腳本,我看不出它是如何更復雜的是你的方法,同時還要捕捉邊緣情況,以便測試運行時間可能多出幾秒鐘。 –

0

其實是有一個小竅門,你可以做。我有一個增加的出口HAR文件,但我不能從Selenium IDE調用它,因爲它沒有聲明。

硒IDE:命令= 「去」目標= 「JavaScript的:警報(」 你好 「)」

相關問題