2015-06-16 147 views
0

我试图使用Selenium Webdriver自动化应用程序。我经常遇到无法单击WebElements的情况。我无法使用Selenium Webdriver单击Web元素

例如,在看起来有点像HTML块:

<div id=staticid> 
    <table> 
    <tbody> 
     <tr id="tr1" class="class1" tabindex="-1" data-recordindex="0" data-recordid="1" data-boundview="gridview-1211" role="row"> 
     <td id="td1" class="class2 " role="gridcell"> 
      <div class="class3 " style="text-align:left;" unselectable="on">Content 1</div> 
     <td id="td2" class="class6" role="gridcell"> 
      <div class="class5" style="text-align:center;" unselectable="on"> 
      <img class="class4" src="chekboximage"> 
      </div> 
     </td> 
     <td id="td3" class="class8" role="gridcell"> 
      <div class="class5" style="text-align:center;" unselectable="on"> 
      <img class="class4" src="checkboximage"> 
      </div> 
     </td> 
     </tr> 
    </tbody> 
    </table> 
</div> 

ID被动态生成和类是如“网内。”等。 (我已经替换它们使其更小) 最后两个元素显示为复选框。 单击该块后,td块的类发生变化,并且复选框显示为单击。

我尝试点击使用driver.findElement(By.xpath()),csspath和一切的复选框。点击操作似乎已成功执行,但所需的结果,即检查的复选框不会发生。

我使用Selenium IDE验证了我的xpath和csspaths。元素使用“查找”选项正确定位。点击操作也会执行,但复选框保持未选中状态。

我一直试图让这个工作了近一个星期。 任何人都可以请帮我吗?

该代码确实似乎改变了点击图像(我比较了点击前后的图像源)。但没有可见的“onclick()”调用(我不确定在click上是否有其他方式调用Java脚本功能。请让我知道是否有)。无论如何,我尝试点击该块。它适用于Se-IDE和Se-IEDriver,但不适用于FireFoxDriver。

+3

您需要显示您遇到问题的代码。请注意,您提供的示例HTML没有任何复选框。这些图像可能看起来像是一个复选框,并且背景中可能会有一些javascript事件来回切换图像。 – SiKing

+1

假设有一个JavaScript onClick处理程序改变了'td'的类?你可以检查哪个元素是被regestered的吗?你用Selenium('td','div'或'img')找到并点击了哪个元素?另外,在动态元素完成生成之前,还是在事件处理程序注册之前,您的Selenium代码是否可能正在运行? – DNA

+0

您是否尝试过MoveToElement方法? –

回答

0

尝试driver.findElement(By.xpath()).sendKeys(Keys.ENTER);这也是一样的点击,但键盘笔画。希望它有效。

相关问题