我试图使用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。
您需要显示您遇到问题的代码。请注意,您提供的示例HTML没有任何复选框。这些图像可能看起来像是一个复选框,并且背景中可能会有一些javascript事件来回切换图像。 – SiKing
假设有一个JavaScript onClick处理程序改变了'td'的类?你可以检查哪个元素是被regestered的吗?你用Selenium('td','div'或'img')找到并点击了哪个元素?另外,在动态元素完成生成之前,还是在事件处理程序注册之前,您的Selenium代码是否可能正在运行? – DNA
您是否尝试过MoveToElement方法? –