首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Selenium单击链接,其中href是javascript:void[0];

Selenium单击链接,其中href是javascript:void[0];
EN

Stack Overflow用户
提问于 2013-04-30 15:09:27
回答 2查看 13.3K关注 0票数 2

我正在尝试查看当单击一个链接时,是否会使用Selenium WebDriver在页面上生成一个报告。

发生的事情是在一个页面上有一堆链接,当单击它们时,它们中的大多数都会转到另一个页面,在那里我会自动填写详细信息并提交表单,以检查报告是否生成。

但是,有三个报告在单击时会导致一些JS运行,几秒钟后,在同一页面上会显示一个新的链接来下载报告。

如何单击此链接?

我将页面上的所有链接读取到一个WebElements列表中,然后遍历它们,查找href包含javascript的位置: to void;

然后,我尝试对列表中的元素allLinks.get(I).click()调用click方法;

这与我对其他报告所做的事情相同,并且工作正常,但在这3个报告中,我得到一个错误“元素当前不可见,因此可能无法与之交互”

使用firebug如果我检查启动运行JS的链接,它会说:

代码语言:javascript
运行
AI代码解释
复制
<a onclick="requestReportGeneration('2cad4d4e5c8855c47a88b6ddf8345735', 'reportDiv33','CSV')" href="javascript:void[0];">CSV</a>

有没有人能推荐一种点击链接的方法?

这个页面包含了很多CSV的链接,所以我不能只使用链接文本。

更新:我刚刚想到了一个可能会有帮助的想法。当我第一次来到带有报告链接的页面时,它会显示"Order report“,我需要单击标题,然后调用JS函数来展开该部分并显示链接。

报告是有效的,因为当我来到这个页面时,我只是阅读了页面源代码的所有href并执行了driver.get(reportList.get(i);所以我实际上没有点击这个链接。

我添加了一个链接来获取标题的xpath并单击它,但是当我尝试单击带有href或javascript: void的链接时,我仍然得到一个错误,说它不可见。

EN

回答 2

Stack Overflow用户

发布于 2013-05-02 10:16:03

检查此命令是否单击任何(实际上是javascript:void的第一个)链接

代码语言:javascript
运行
AI代码解释
复制
driver.findElement(By.xpath("//a[contains(@href,\"javascript:void[0]\")]")).click();

如果是,则表明迭代器有问题

票数 0
EN

Stack Overflow用户

发布于 2013-09-17 10:43:45

对于包含href="javascript:"的锚定标记,使用原生javascript click()方法,如下所示:

代码语言:javascript
运行
AI代码解释
复制
WebElement wwwLink = ((FindsByCssSelector) webDriver)
                .findElementByCssSelector("table[id='initiatorsTable'] tbody tr:not([class^='empty']) td[class='first'] a");

JavascriptExecutor exec = (JavascriptExecutor) webDriver;
exec.executeScript("arguments[0].click()", wwwUrl);

//TODO: wait for action code ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16303195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文