无法单击元素

时间:2014-05-14 19:27:24

标签: selenium selenium-webdriver webdriver

我无法点击该元素。我能够使用xpath(带语句的对象)找到它 " element.getText()"  返回正确的值 " element.isDisplayed()"  返回true 但当我说" element.click()"抛出一个例外 "元素目前不可见,因此可能无法与" 上述异常在selenium 2.34及更高版本中引发。

当我使用较旧的硒版本时说" 2.25"它没有抛出异常但是点击没有效果。 我在Win7机器上使用FF浏览器.Below是HTML

<div class="dojoxGrid-row dojoxGrid-row-over row-read" style="">
 <table class="dojoxGrid-row-table" cellspacing="0" cellpadding="0" border="0">
  <tbody>
   <tr>
    <td class="dojoxGrid-cell " style="width:36px;" idx="0" tabindex="-1">
    <td class="dojoxGrid-cell gridColFrom " style="width:150px;" idx="1" tabindex="-1">
    <td class="dojoxGrid-cell gridColType " style="width:16px;" idx="2" tabindex="-1"/>
    <td class="dojoxGrid-cell gridColAttach " style="width:16px;" idx="3" tabindex="-1"/>
    <td class="dojoxGrid-cell gridColSub dojoxGrid-cell-over" style="width:400px;" idx="4"       tabindex="-1">
      <span style="white-space: nowrap;" title="(No subject)">(No subject)</span>
    </td>
    <td class="dojoxGrid-cell " style="width:72px;" idx="5" tabindex="-1">Tue May 13</td>
    <td class="dojoxGrid-cell gridColHov " style="width:16px;" idx="6" tabindex="-1">
    <td class="dojoxGrid-cell gridColFlag " style="width:16px;" idx="7" tabindex="-1">
   </tr>
  </tbody>
 </table>
</div>

3 个答案:

答案 0 :(得分:0)

元素目前不可见,因此可能无法与

进行互动

您所看到的内容通常是由屏幕上符合搜索条件的多个元素引起的。 WebElement.findElement返回第一个匹配,实际上可能不可见。您可以通过调用“isDisplayed”进行检查。

尝试在firebug中使用相同的xpath找到该元素,并检查它是否显示在屏幕上可见的元素。

答案 1 :(得分:0)

尝试使用jsExecuter点击元素:

JavascriptExecutor myJSExecutor = (JavascriptExecutor)myDriver;
myJSExecutor.executeScript("arguments[0].click();", myElement);

//where myDriver and myElement are already defined WebDriver and WebElement

答案 2 :(得分:0)

您的应用程序似乎使用Dojo来表示UI。我在点击具有dojo属性的元素时遇到了同样的问题,我使用JavaScriptExecutor以与上面提到的方式类似的方式解决了它。此问题的另一个解决方案是使用.sendKeys(Keys.Enter)