Selenium click不会触发Chrome上的javascript函数
下面是HTML代码Selenium click不会触发Chrome上的javascript函数,javascript,html,angularjs,selenium,Javascript,Html,Angularjs,Selenium,下面是HTML代码 <table class="table-main "> <thead> <tbody> <!----> <tr class="" ng-if="mapCtrl.isAdded" style=""> <td/> <td> <td> <td> <td cla
<table class="table-main ">
<thead>
<tbody>
<!---->
<tr class="" ng-if="mapCtrl.isAdded" style="">
<td/>
<td>
<td>
<td>
<td class="table-close-btn">
<i class="form-check tick-mark" ng-mousedown="mapCtrl.createTable()"/>
<i class="form-close" ng-click="mapCtrl.cancelTable()"/>
</td>
</tr>
<!---->
<!---->
<tr ng-mousedown="mapCtrl.createTable()" ng-if="mapCtrl.showEmpty">
<!---->
<!---->
</tbody>
</table>
请勾选粗体线条*.*
我尝试通过以下方式通过selenium单击元素,但没有一种方法在chrome上有效:
moveToElement(el)创建。单击()代码>
js.executeScript(“参数[0]。单击();”,el)的Java脚本执行器
和js.executeScript(“返回参数[0].innerHTML”,el)
;及
JavascriptLibrary jsLib=新建JavascriptLibrary();
jsLib.callEmbeddedSelenium(驱动程序,“triggerMouseEventAt”,el,“click”,“0,0”)如果您还需要了解其他信息,请随时联系。尝试使用此元素的选择器路径:
<td class="table-close-btn">
<i class="form-check tick-mark" ng-mousedown="mapCtrl.createTable()"/>
你能考虑按实际的要求缩进HTML吗?谢谢它在Firefox上工作吗?如果不是,则单击可能在侦听器被angular设置之前执行。尝试在单击之前等待,以查看情况是否如此。还要注意,Javascript
.click()
不会发出鼠标事件。因此,请确保使用Selenium。单击()
@FlorentB。它在Firefox上运行良好。我尝试了5秒的睡眠,但还是不起作用Chrome@DebanjanB:嗨,德班詹,我已经做了改变。请查收
WebElement element = driver.findElementBy(By.cssSelector("td.table-close-btn > i.form-check.tick-mark"));
element.click();