Selenium webdriver试图自动点击链接按钮?

时间:2012-04-05 14:00:43

标签: button selenium webdriver

我正在使用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>

2 个答案:

答案 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();