如何在HTML中处理动态ID

时间:2012-03-28 11:47:07

标签: testing selenium webdriver selenium-webdriver

我必须点击id的按钮。但是这个id是动态生成的。并且发现By.className()没有做任何事情。

按钮的HTML代码:

<td class="x-btn-mc">
    <em class="" unselectable="on">
        <button id="cq-gen372" class=" x-btn-text" type="button">OK</button>
    </em>
</td>

如何选择按钮并在Java中单击它?

2 个答案:

答案 0 :(得分:1)

By.className()在IE和一些较旧的Selenium版本中确实存在错误。我不知道情况仍然如此。无论如何!你可以搜索很多东西,而不仅仅是id:

如果它是页面上唯一(或第一个)OK按钮,您可以尝试By.xpath("//button[text()='OK']");

有关更多x路径,请参阅XPath v1.0 on w3.orgXPath v2.0 on w3.org - only for some new browsers!

或者您可以使用css选择器 - The w3 againwikipedia

答案 1 :(得分:1)

您可以使用以下选项

  //button[text()='OK']    
  xpath=//button[contains(., 'OK')]
  //button[contains(@class, 'x-btn-text')]