【问题标题】:How to select an element by an attribute of a tag in python如何通过python中标签的属性选择元素
【发布时间】:2019-05-22 14:17:41
【问题描述】:

我正在尝试在 python 中使用 selenium 访问多个标签的文本。

标签没有idclass等属性;他们有一个名为itemprop的属性。

例如有多个这种类型的标签:

<p itemprop="articleBody">
London's Gatwick Airport ........</p>

我不能使用“按标签名称选择元素”,因为标签“p”具有我不想包含的不同属性。

我正在使用下面的代码来选择这些元素:

elements = driver.find_element(By.CSS_SELECTOR, """p[itemprop='articleBody’]""")

但是它会抛出错误 - ......

NoSuchElementException:消息:没有这样的元素:无法找到元素:{"method":"css selector","selector":"p[itemprop='articleBody']"}

我该如何解决这个问题?

【问题讨论】:

  • Corrected Instance 例如有多个此类标签 (p itemprop="articleBody")....伦敦盖特威克机场 ..........(/p)

标签: python selenium


【解决方案1】:

您在选择器中有智能引号,使用find_elements*s 来获取多个元素。

elements = driver.find_elements(By.CSS_SELECTOR, 'p[itemprop="articleBody"]')
# Or
elements = driver.find_elements_by_css_selector('p[itemprop="articleBody"]')

【讨论】:

  • 谢谢。有效。但是,我不明白为什么单引号不起作用?
  • 可以使用单引号,与smart quotes不同。
猜你喜欢
  • 2019-07-20
  • 2010-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-16
  • 1970-01-01
  • 2010-12-18
相关资源
最近更新 更多