首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python的.text在JavaScript中的等价物是什么?

python的.text在JavaScript中的等价物是什么?
EN

Stack Overflow用户
提问于 2018-06-30 01:08:31
回答 1查看 175关注 0票数 1

Element.text返回元素的文本内容。

在SO上的另一个thread中,python脚本从一个Instagram账户上的关注者模型中抓取数据。下面的部分返回列表中的文本并将其存储在数组中。

 xpath = "//div[@style='position: relative; z-index: 1;']//ul/li/div/div/div/div/a"
 followers_elems = driver.find_elements_by_xpath(xpath)
 return [e.text for e in followers_elems]

我正在尝试在JavaScript (我使用WebDriverJS)中实现类似的结果:

 const XPATH = "/html/body/div[3]/div/div[2]/div/div[2]/ul/div/li";
 var followers_elems = await driver.findElements(By.xpath(XPATH));
 var followers_temp = [];
 for (var e in followers_elems) {
  followers_temp.push(e.textContent); }
 console.log(followers_temp);

我不确定.text使用textContent是否是合适的属性。

我尝试了一百万种不同的选择,但我得到的都是数组中未定义的值:

我还不是很精通JS,但我确信e正在从followers_elems中读取数据,如果我在数组中只推入e,它就可以很好地记录总的关注者数量。它是从xpath获取我不理解的文本值。JavaScript做得很好,但是尽管冗长,Python还是让我失望了。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-30 02:05:18

在使用WebdriverJS时,WebElement.getText()相当于在python中获取文本元素。

这对你来说应该是可行的。我已经创建了一个异步函数和易于理解的for循环。另外,由于getText()返回一个promise,所以我使用async - await来获取文本并将其推送到followers_temp数组。

async function pushTextIn() {
  for (let i = 0; i < followers_elems.length; i++) {
    let text = await followers_elems[i].getText();
    console.log('pushing text: ', text);
    followers_temp.push(text);
  }
  return followers_temp;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51106533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档