selenium - Selenium chromedriver svg dom 抓取链接
问题描述
我有这个http://app.risorseumane.uniparthenope.it/organigramma/organigramma.htm
网页,我需要从网页中获取所有链接。例如我想要链接
<a xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.uniparthenope.it/ateneo/organigramma/rettore" target="_top">
<g id="shape48-47" transform="translate(355,-400.951)">
<title>Entità esterna 1.48</title>
<desc>Rettore</desc>
<g id="shadow48-48" transform="matrix(1,0,0,1,2.12132,2.12132)" class="st5">
<rect x="0" y="531.345" width="136.459" height="63.9306" class="st6"/>
</g>
<rect x="0" y="531.345" width="136.459" height="63.9306" class="st7"/>
<text x="48.7" y="566.91" class="st8">Rettore</text> </g>
</a>
我只能使用 chrome 的“检查元素”功能或document.getElementsByTagName('a')
在 chrome 中调用开发人员工具窗口来查看。
不幸的是,我无法使用driver.findElementsByTagName("a");
或使用这些链接
JavascriptExecutor js = null;
if (driver instanceof JavascriptExecutor) {
js = (JavascriptExecutor)driver;
}
List<Object> fsLinks = (List<Object>)js.executeScript("return document.getElementsByTagName('a');");
解决方案
您可以尝试使用 xpath:
//*[名称() = 'a']
或者
//*[本地名称() = 'a']
推荐阅读
- laravel - 通过在 Laravel 中传递令牌获取用户 ID
- mysql - 烧瓶无法在docker compose中连接mysql
- python - 用布尔值替换 Pandas 系列中的数字
- laravel - 如何将查询转换为 Laravel Eloquent ORM
- c# - 有没有办法可以通过 cts.Cancel(); 立即停止正在运行的方法?
- spring - 我们如何在内存重启中禁用 Springboot 中的会话清除
- magento - 为特定产品启用支付网关 - Magento 2
- kubernetes - ArangoDB 初始化容器在 minikube 上失败
- amazon-web-services - 无法访问 AWS EC2 实例:公共 DNS (IPv4) 和 IPv4 公共 IP
- php - 格式化 SQL PHP 脚本