【发布时间】:2016-02-14 09:49:12
【问题描述】:
您好:我正在使用 Selenium/Java 从网站获取 PDF。该网站不会提前生成它们,但只有在我点击链接之后才会生成它们。当我这样做时,网络服务器会关闭几分钟,然后返回内容。
我使用的是 Firefox 及其内置的 PDF 查看器。当我从主浏览器窗口单击下载链接时,它会打开另一个窗口来接收 PDF 内容。几分钟后,子窗口就会被 PDF 内容填满,我只需单击 Firefox 工具栏上的 下载 按钮,然后按 保存 按钮在确认对话框中。有时我已经成功地完成了这两件事。
我的问题,有时发生在我执行代码点击子窗口的下载按钮...
WebElement element = driver.findElement(By.id("download"));
element.click();
有时,它只是不起作用。声明:
driver.findElement(By.id("download"))
...从不抛出异常,因此它似乎总是成功。然而,随后的 element.click() 通常不会产生预期的结果。
我在这个问题上投了大约 100 次飞镖,但我似乎找不到能产生一致结果的飞镖。我尝试引入延迟,多次调用 findElement,尝试在子窗口上使用驱动程序以确认其与该窗口的连接(所有返回值均为正值),但似乎没有任何帮助使 element.click() on该死的下载链接成功了。
我发现 Selenium 是一种坚如磐石的解决方案,尤其是在通过主窗口工作时......它从不错过任何一个节拍,我对这种行为印象深刻。这是我的第一个 Selenium 项目,我希望使用它的人可以对这个特定问题提出建议。
【问题讨论】: