我试图看看当一个链接被点击时,是否会在页面上使用Selenium WebDriver和Java生成一个报告。
发生的事情是在一个页面上有一堆链接,其中大多数当点击转到另一个页面,我已经自动填写详细信息和提交表格,以检查报告是否生成。
但是,有三个报告,当点击导致一些JS运行,几秒钟后,一个新的链接显示在同一页面上下载报告。
我如何点击此链接?
我将页面上的所有链接读入一个WebElement列表,然后循环遍历它们,查找href包含javascript的位置:作废[0];
然后我尝试调用列表中该元素的click方法allLinks.get(i).click();
这与我对其他报告所做的事情相同,它工作正常,但在这3个报告上,我得到一个错误“元素当前不可见,因此可能无法交互”
如果我使用firebug检查启动JS运行的链接,它会说:
<a onclick="requestReportGeneration('2cad4d4e5c8855c47a88b6ddf8345735', 'reportDiv33','CSV')" href="javascript:void[0];">CSV</a>
有人能建议一个点击链接的方法吗?
该页面包含大量的链接说CSV,所以我不能只使用链接文本。
**更新:**我刚刚想到了一个可能会有帮助的想法。当我第一次来到报告链接的页面时,它会说“订购报告”,我需要单击标题,然后调用JS函数来展开该部分并显示链接。
报告的工作,因为当我来到这个页面,我只是阅读所有的页面源代码的href和做driver.get(reportList.get(i);所以我并没有点击链接。
我已经添加了一个链接来获取标题的xpath并单击它,但当我尝试单击带有href或javascript的链接时:void我仍然收到一个错误消息,说它不可见。
2条答案
按热度按时间rggaifut1#
检查此命令是否单击任何链接(实际上是第一个,带有 javascript:void[0])
如果是-则迭代器有问题
vyswwuz22#
对于包含
href="javascript:"
的锚标签,使用原生javascript click()方法,如下所示: