无法单击selenium webdriver中的元素

时间:2016-01-29 09:10:21

标签: selenium

enter image description here

我正在开发一个项目,我需要点击分割按钮(箭头)。

以下是HTML:

<table id="ext-comp-1006" cellspacing="0" class="x-btn support-servicedesk-sb caseMru standardObject mruIcon support-servicedesk-sbactive x-btn-noicon" style="width: 250px; height: 26px;">
   <tbody class="x-btn-small x-btn-icon-small-left">
     <tr>
        <td class="x-btn-tl">
          <i>&nbsp;</i>
          </td>
        <td class="x-btn-tc"></td>
    <td class="x-btn-tr">
       <i>&nbsp;</i>
     </td>
     </tr>
    <tr>
      <td class="x-btn-ml">
          <i>&nbsp;</i>
        </td>
    <td class="x-btn-mc">
      <em class="x-btn-split" unselectable="on" id="ext-gen100">
      <button type="button" id="ext-gen33" class=" x-btn-text">
         <div class="mruIcon"></div>
         <span>Cases</span>
    </button>
   </em>
</td>
   <td class="x-btn-mr">
     <i>&nbsp;</i>
  </td>
</tr>
 <tr>
    <td class="x-btn-bl">
        <i>&nbsp;</i>
</td>
   <td class="x-btn-bc"></td>
<td class="x-btn-br">
   <i>&nbsp;</i>
</td>
</tr>
</tbody>
</table>

点击分割按钮的代码:

driver.findElement(By.className("x-btn-split")).click();

我也尝试使用id,但它正在抛出无法找到元素错误。

4 个答案:

答案 0 :(得分:0)

试试这个:

driver.findElement(By.xPath('//button[@id="ext-gen33"]')).click()

答案 1 :(得分:0)

它为我工作:

 System.out.println(browser.findElement(By.className("x-btn-split")).getAttribute("id"));
        System.out.println(browser.findElement(By.className("x-btn-split")).getAttribute("className"));
        browser.findElement(By.className("x-btn-split")).click();

执行上述步骤后,您会看到它实际上打印了classname和id,因此它正在运行。如果您可以提供点击功能,那么我们可以再次检查脚本。

我用过的HTML:

<html>
<body>
<form>
    <em class="x-btn-split" unselectable="on" id="ext-gen100">
    <button
            type="button" id="ext-gen33" class="x-btn-text">
            <div class="mruIcon"></div>
            <span>Cases</span>
        </button></em>
        </form>
</body>
</html>

点击此处查看完整源代码: https://github.com/jagdeepjain/selenium-recipes/blob/master/src/org/example/jagdeep/recipes/SplitButton.java

答案 2 :(得分:0)

您可以尝试点击带有ID的元素吗?

driver.findElement(By.id("ext-gen100")).click();

如果你仍然面临问题,你可以分享错误吗?

希望这有帮助!

答案 3 :(得分:0)

使用xpath而不是className。用className写xpath。

尝试下面的按钮点击代码。

 driver.findElement(By.xpath("//em[@class='x-btn-split']/button[1]")).click();

 driver.findElement(By.xpath("//button[@class='x-btn-text']")).click();