Javascript 单击Selenium的动态链接
我试图点击一个动态生成的链接,它似乎执行了一些Javascript。我曾尝试使用“onclick”和JavaScripExecutor方法,但无法在页面中找到元素。我正在使用的代码片段如下所示:Javascript 单击Selenium的动态链接,javascript,java,selenium,selenium-webdriver,automation,Javascript,Java,Selenium,Selenium Webdriver,Automation,我试图点击一个动态生成的链接,它似乎执行了一些Javascript。我曾尝试使用“onclick”和JavaScripExecutor方法,但无法在页面中找到元素。我正在使用的代码片段如下所示: <a class="a68a" target="_top" style="cursor:pointer;" href="" onkeypress="if(event.keyCode == 13 || event.which == 13){ClientReportc2b21bbce37e4f5ba9
<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)和(b)失败是因为JS名称的一部分是动态生成的,我不能依赖它。如果能得到一些帮助,我将不胜感激。谢谢。如果元素是动态生成的,那么您可能应该先等待元素出现,然后单击它。请尝试下面的代码,看看是否有帮助-
driver.wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//a[@class='a68a']"))).click();
希望这能有所帮助。在“a”标记的父标记上而不是在“a”标记上尝试相同的操作如何。您尝试的方法没有问题,只是动态加载内容使问题变得更糟。让我们用父标记包含相同的路径,它应该可以工作。如果你发布HTML,请通过类似的美化程序运行它。这使它更容易阅读。谢谢
driver.wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//a[@class='a68a']"))).click();