2013-07-18 56 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,进行必要的更改,添加等待(隐含通常就足够了),就完成了。