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

如何在Selenium JavaScript中获取每个父元素下的子元素文本?

在Selenium JavaScript中获取父元素下各子元素的文本

你现在的代码问题在于,每次调用e.getText()都会获取整个父元素的所有文本内容,没办法区分title、body和footer各自的内容。要解决这个问题,核心是在每个父元素的上下文范围内单独查找对应的子元素,再获取它们的文本。

下面是修正后的完整代码:

let driver = new Builder().forBrowser('chrome').build(); 
let searchResults = await driver.findElements(By.css('.parent')); 

for (let parent of searchResults) { 
    // 在当前父元素内部查找子元素,而不是整个页面
    let title = await parent.findElement(By.css('.title')).getText();
    let body = await parent.findElement(By.css('.body')).getText();
    let footer = await parent.findElement(By.css('.footer')).getText();
    
    // 这里可以根据需求处理文本,比如打印或者存入数组
    console.log(`父元素内容:标题=${title},正文=${body},页脚=${footer}`);
}

关键说明:

  • 使用parent.findElement()替代全局的driver.findElement(),这样查找范围被限定在当前遍历的父元素内部,确保拿到的是该父元素下对应的子元素。
  • 如果担心某些父元素可能缺少某个子元素(比如没有footer),可以用findElements先判断是否存在,再处理:
    let footerElements = await parent.findElements(By.css('.footer'));
    let footer = footerElements.length > 0 ? await footerElements[0].getText() : '无页脚';
    

这样就能精准获取每个父元素下各子元素的文本内容啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 07:27:48