0

我正在使用 Selennium Webdriver 自动单击 PDF 下载按钮。我使用了各种方法来单击按钮,但似乎抛出了一个 Jscript 错误:

Message: Unexpected call to method or property access.
Line: 17
Char: 29094
Code: 0
URI: http://uat.mysite.com/Scripts/jquery-1.6.2.min.js

我的点击代码(尝试了这两个):

driver.findElement(By.xpath("//div/a[contains(text(), 'Download PDF')]")).click();

或者

driver.findElement(By.xpath("//div[@class='paginationWrap']/a[@class='redBlock']")).click();

的HTML:

<div class='articleFoot'>
    <div class='paginationWrap'>
        <a class='redBlock' target="_blank" href='/DownloadMedia.aspx?media={625B459D-C085-48C5-931C-71BE03786236}'>
            Download PDF
            <span class='icon pdf'></span>
        </a>
    </div>
</div>
4

2 回答 2

0

这两个 xpath 表达式都可以。

如果异常确实不是来自 jquery 脚本(不是吗?),那么 Selenium 很可能无法真正下载文件。然而。

尽管如此,除了 HtmlUnitDriver (我不知道它的行为),浏览器应该为您提供一个下载对话框。尝试另一个驱动程序,然后在其他地方查找错误。

你可以做一些技巧来实现文件下载,我个人最喜欢的是这个下载器,但是还有更多的方法,比如在 Firefox 中获取和设置下载状态栏,一些机器人动作等等。但是你真的需要吗?

于 2012-04-05T21:21:42.577 回答
0

这可能会帮助您:

WebElement state = driver.findElement(By.xpath("//div/a[contains(text(), 'Download PDF')]"));
Actions builder1 = new Actions(driver);
builder1.moveToElement(state).click().perform();
于 2018-06-28T05:24:03.680 回答