2014-02-12 42 views
1

任何人都可以解釋爲什麼我會得到一個「錯誤:錯誤響應狀態:7」。當我在Intern功能測試中運行以下代碼時?hasElementByCss在實習生成功後的elementByCss失敗

.hasElementByCss("#COLUMN1_HEADER > span") 
.then(function(result) { 
    console.log("Test #2a - Check column header"); 
    assert(result == true, "Could not find COLUMN1_HEADER in Test #2a"); 
}) 
.elementByCss("#COLUMN1_HEADER > span") 
    .moveTo() 
    .click() 
    .end() 

請注意,我檢查元素的存在(被發現,並確實存在),然後嘗試移動到它並點擊它。我用一些的console.log

要求,以確保它是絕對的「.elementByCss」行失敗。有趣的是,在這部分測試的上面有一大堆鍵盤驅動的測試,如果我評論一下,那麼它就會通過。

我不明白的是「hasElementByCss」和「elementByCss」用相同的CSS選擇器如何能產生不同的結果,而鍵盤測試有什麼樣的影響。

+0

這似乎是由它們使用了。主動()方法早在測試引起的...沒有elementByCss只有在元素中搜索返回從它的回調? –

+0

強烈建議不要使用has方法;你會根據'elementByCss'命令是否成功知道元素是否存在。 –

回答

2

我解決了這個問題通過測試代碼的工作我回來的路上,並確保我曾呼籲.END()後,以前已經使用。主動()...我不知道這是否是一個解決辦法,或者如果這是預期的行爲 - 但它並不特別清楚。我個人認爲這是一個錯誤。

+0

它是預期的。一旦你檢索到一個元素,除非你調用'end',否則這個元素將成爲未來請求的根環境。這就像jQuery DOM方法的工作方式一樣,並不是缺陷。 –