单击Selenium的动态链接
Click on a dynamic link with Selenium
我试图点击一个动态生成的链接,似乎执行一些Javascript。我尝试使用"onclick"和JavaScripExecutor方法,但我无法在页面中找到元素。我正在使用的代码片段如下:
<a class="a68a" target="_top" style="cursor:pointer;" href="" onkeypress="if(event.keyCode == 13 || event.which == 13){ClientReportc2b21bbce37e4f5ba98575a2680610a2.ActionHandler('Drillthrough','64iT0R0x0:0');}return false;" onclick="ClientReportc2b21bbce37e4f5ba98575a2680610a2.ActionHandler('Drillthrough','64iT0R0x0:0');return false;" tabindex="1">
<div class="r13" style="WIDTH:17.42mm;">
<div class="a67"> <span class="a66">123456789</span> </div>
</div>
</a>
我尝试了许多不同的方法,但都无济于事:
(a) driver.findElement(By.linkText("ClientReport8522bb9804044e969553e386b7010c6d.ActionHandler('Drillthrough','64iT0R0x0:0')")).click();
(b) driver.findElement(By.xpath("//a[@onclick='ClientReport8522bb9804044e969553e386b7010c6d.ActionHandler('Drillthrough','64iT0R0x0:0')']")).click();
(c) WebElement element = driver.findElement(By.xpath("//a[@class='a68a']"));
element.click();
(d) WebElement element= driver.findElement(By.xpath("//a[@class='a68a']"));
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();", element);
我认为(a)和(b)失败,因为JS名称的一部分是动态生成的,我不能依赖它。我将非常感激你的帮助。谢谢。
如果元素是动态生成的,那么您应该先等待元素出现,然后再单击它。试试下面的代码看看是否有帮助-
driver.wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//a[@class='a68a']"))).click();
相关文章:
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- Facebook共享动态参数链接
- JavaScript-取决于多个下拉选择或复选框的动态链接
- 当用户点击动态创建的链接时,如何调用JS方法.JQuery,ASP.NET MVC
- 我想将链接关联到动态创建的p元素上的相应文章
- 动态虚拟目录和外部 JavaScript 链接
- Angular 2中登录页上的动态后退链接
- Javascript+动态菜单+当前链接样式(CSS)+基于PHP的网站
- 使用路由器链接动态添加元素
- 我希望所有页面都有相同的固定标题-我可以链接动态HTML或Javascript吗
- Angular's深度链接-动态链接与静态链接
- 同时创建和链接动态元素
- 如何根据单击链接动态填充部分
- 链接动态加载的javascript
- javascript为所有链接动态添加相对路径
- 通过链接动态创建img,而不附加多个实例
- 动态添加了li's,现在通过超链接动态删除它们
- ReactRouter链接动态参数不工作
- 引导模式替换按钮链接-动态Div id