我正在使用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>
答案 0 :(得分:0)
这两个xpath表达式都可以。
如果异常实际上是来自jquery脚本的不是(不是吗?),那么Selenium很可能无法真正下载文件。爱好。
尽管如此,除了HtmlUnitDriver(我不知道其行为)之外,浏览器还应该为您提供下载对话框。尝试其他驱动程序,然后在其他地方查找错误。
你可以做一些技巧来实现文件下载,我个人最喜欢的是this downloader,但还有一些方法可以在Firefox中获取和设置Download Statusbar,有些Robot移动等等。但你真的需要吗?
答案 1 :(得分:0)
这可能会帮助您:
WebElement state = driver.findElement(By.xpath("//div/a[contains(text(), 'Download PDF')]"));
Actions builder1 = new Actions(driver);
builder1.moveToElement(state).click().perform();