我正在尝试使用selenium IDE运行测试。以下html由IDE生成
<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>
当我运行test / execute命令时,出现错误[error] Element id=pt1:r5:0:mr1:gts1:gts_pc1:tt1:0::di not found
我有什么想法可以解决这个问题吗?
答案 0 :(得分:0)
包含的示例 ./li[contains( '模型')]]
答案 1 :(得分:0)
在测试用例中使用生成的ID通常是个坏主意。当服务器重新启动/数据更改时,这些ID也会发生变化。
无论如何,你的问题似乎是时间问题的经典问题。当点击某些内容/页面更改后,您的元素是否加载了AJAX?如果是,Selenium会在完全加载之前尝试单击它们。在单击导致问题的元素之前,您应该使用waitForElementPresent
。
通常,使用Selenium IDE进行AJAX密集页面非常容易使用。考虑切换到手动Selenium RC写作,或者更好的是Selenium WebDriver。您可以充分利用这两个方面 - 首先在IDE中单击您的测试,然后以任何语言将代码导出到WebDriver,进行必要的更改,添加等待(隐式通常就足够了),您就完成了。