You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium无法获取ProductOrAdCard嵌套href属性问题求助

Selenium提取商品卡片内嵌套a标签的href解决方案

你之前的代码问题在于直接给商品卡片div元素获取href属性,但div本身没有这个属性,目标链接在div内部的<a>标签里。加上中间span类名动态变化,用跨层级定位就能绕过这个问题,两种可行方法如下:

  • 直接定位所有目标a标签
    写xpath直接匹配商品卡片内部的所有a标签,不管中间层级:

    List<WebElement> productLinks = driver.findElements(By.xpath("//div[@data-test-component='ProductOrAdCard']//a"));
    for (WebElement link : productLinks) {
        String href = link.getAttribute("href");
        // 这里可以处理获取到的href,比如打印或存储
        System.out.println(href);
    }
    

    这里的//是跨层级定位,会忽略中间动态类名的span,直接找到div下所有嵌套的a标签。

  • 先定位卡片再内部查找a标签
    如果需要先操作商品卡片再提取链接,可先获取所有卡片,再在每个卡片范围内用相对路径找a标签:

    List<WebElement> productCards = driver.findElements(By.xpath("//div[@data-test-component='ProductOrAdCard']"));
    for (WebElement card : productCards) {
        // 用.//a表示从当前卡片元素的子节点开始查找,而非根节点
        WebElement link = card.findElement(By.xpath(".//a"));
        String href = link.getAttribute("href");
        System.out.println(href);
    }
    

内容的提问来源于stack exchange,提问作者Artist

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 14:01:26