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