【问题标题】:Selenium JS how to get text of an elementSelenium JS如何获取元素的文本
【发布时间】:2021-05-19 17:57:47
【问题描述】:

我已经搜索了一个答案,这应该相对容易,但我该如何从浏览器中的填充表格中获取文本?

“检查”看起来像这样:

<tr role="row">
  <th class="component-body-text" colspan="1"role="columnheader">### The Text I want ###</th>

显然桌子上还有比这更多的东西,但我只想抓住那段文字?

我会做类似的事情

await driver.findElement(By.className('component-body-text')).getText(); 

因为那行不通。或者既然表格中有多个元素,我应该

const sample = await driver.findElements(By.className('component-body-text')); 
sampleText = sample[0].getText();

这两种方法我都试过了。

【问题讨论】:

  • 不工作是什么意思?您是否收到错误消息或错误值?
  • “console.log(driver.findElement(By.className('component-body-text')))”显示什么?

标签: javascript selenium xpath async-await css-selectors


【解决方案1】:

要提取文本我想要的文本,您可以使用以下任一Locator Strategies

  • 使用类名

    await driver.findElement(By.className("component-body-text").getText()
    
  • 使用css

    await driver.findElement(By.css("tr[role='row'] > th.component-body-text[role='columnheader']").getText()
    
  • 使用xpath

    await driver.findElement(By.xpath("//tr[@role='row']/th[@class='component-body-text' and @role='columnheader']").getText()
    

【讨论】:

  • className 对我不起作用。错误消息是“连接到系统的设备无法正常工作”css 按原样工作。我的意思是,我修正了括号,但除此之外,非常好。谢谢。
  • 我看到有人投了反对票。我可以问为什么吗?我在评论中说的是真的。这个建议对我来说是开箱即用的。 (同样,className 没有。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-08
  • 2017-10-11
  • 1970-01-01
  • 2012-09-01
  • 1970-01-01
相关资源
最近更新 更多