【问题标题】:How do I navigate to the page where a hyperlink goes to when it doesn't have an href?当超链接没有href时,如何导航到超链接所在的页面?
【发布时间】:2017-01-25 02:12:46
【问题描述】:
我正在尝试使用网页的 xpath 抓取数据。但是,我很难导航到链接所在的页面,因为它使用 AngularJS 的 ng-click 指令。基于this link,它在单击时计算表达式。在我尝试抓取的页面中,它使用以下代码。
<a l-translate="view all" ng-click="tabsSwitching('downloads')" class="ng-isolate-scope">view all</a>
如果我的理解是正确的,上面的锚是试图调用一个javascript方法去下载标签。如果是这样,我有没有办法通过 xpath 转到该下载选项卡?或者有更好的方法吗?非常感谢。
【问题讨论】:
标签:
javascript
html
angularjs
xpath
web-scraping
【解决方案1】:
这是一个用于单击元素的 javascript 脚本:
document.evaluate("//a[text()='view all']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.click();
【解决方案2】:
您可以通过获取元素并单击它来导航到该链接。如果没有提到锚标签的href值,就没有其他方法了。
所以你可以试试这个:
Driver.findElement(By.xpath("//a[text()='view all']")).click();