Selenium IDE没有检测到id

时间:2013-07-18 09:32:00

标签: selenium selenium-ide

我正在尝试使用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

我有什么想法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

  1. 似乎生成了id,尽量不要使用此id或使用contains (尝试使用其他xpath)
  2. 我只使用id的最后一个单词(你需要检查) 3.你可以突出显示你在哪里
  3. 包含的示例 ./li[contains( '模型')]]

答案 1 :(得分:0)

在测试用例中使用生成的ID通常是个坏主意。当服务器重新启动/数据更改时,这些ID也会发生变化。

无论如何,你的问题似乎是时间问题的经典问题。当点击某些内容/页面更改后,您的元素是否加载了AJAX?如果是,Selenium会在完全加载之前尝试单击它们。在单击导致问题的元素之前,您应该使用waitForElementPresent

通常,使用Selenium IDE进行AJAX密集页面非常容易使用。考虑切换到手动Selenium RC写作,或者更好的是Selenium WebDriver。您可以充分利用这两个方面 - 首先在IDE中单击您的测试,然后以任何语言将代码导出到WebDriver,进行必要的更改,添加等待(隐式通常就足够了),您就完成了。