2013-07-18 52 views
1

我試圖運行使用硒IDE記錄的測試。下面的HTML由IDE硒IDE未檢測到ID

<tr> 
    <td>clickAndWait</td> 
    <td>css=span.blt-txt</td> 
    <td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>id=pt1:svMenu:np1:6:cni1::disclosureAnchor</td> 
    <td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>id=pt1:r5:0:mr1:gts1:gts_pc1:itFilterFieldValue::content</td> 
<td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>id=pt1:r5:0:mr1:gts1:gts_pc1:cil1::icon</td> 
    <td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>id=pt1:r5:0:mr1:gts1:gts_pc1:tt1:0::di</td> 
    <td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>id=pt1:r5:0:mr1:gts1:gts_pc1:tt1:1:astTreeSNo</td> 
    <td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>id=pt1:r1:0:rAstDtl:0:cb4</td> 
    <td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>id('pt1:ptGeneric:ot1::_afrTtxt')/x:div/x:h1</td> 
    <td></td> 
</tr> 

產生的。當我運行測試/執行命令我得到一個錯誤說[error] Element id=pt1:r5:0:mr1:gts1:gts_pc1:tt1:0::di not found

任何想法我怎麼能解決這個問題?

+0

當測試運行時,頁面上實際上是在頁面上嗎?這些ID給我暗示,新版本可能會打破一些ID ... –

+0

嗨帕維爾,是的,ID非常多,在測試運行的頁面上,這是我第一次寫這個測試。該firepath顯示以下xpath .//*[@id='pt1:r1:0:rAstTbl:0:mr1:gts1:gts_pc1:tt1:0::di'] – user2594834

回答

0
  1. 的ID似乎產生儘量不要使用這個號碼,或者使用含有 (嘗試使用其他的XPath)
  2. 我會用id的只是最後一個字(你需要檢查它) 3.you可以突出看到你是

例如,對於含有 ./li[contains(.,'Model')]]

0

在使用測試用例生成的ID通常是一個壞主意。當服務器重新啓動/數據更改時,這些ID也會改變。

無論如何,你的問題似乎是時機的經典問題。點擊某個/頁面更改後,您的元素是否加載了AJAX?如果是,Selenium會在完全加載之前嘗試點擊它們。在點擊導致問題的元素之前,應該使用waitForElementPresent

一般來說,使用Selenium IDE用於AJAX沉重的頁面會非常容易地使用它。考慮切換到手動Selenium RC寫入,或者更好的是Selenium WebDriver。你可以擁有兩全其美的領域 - 首先在IDE中點擊你的測試,然後用任何語言將代碼導出到WebDriver,進行必要的更改,添加等待(隱含通常就足夠了),就完成了。