【问题标题】:Can't specify specific tag using selenium python无法使用 selenium python 指定特定标签
【发布时间】:2020-08-29 05:28:56
【问题描述】:
driver = webdriver.Chrome()

i=driver.find_element_by_xpath('/html/body/div[5]/div/div[5]/div/div[1]/text()[1]')

然后我得到错误:

selenium.common.exceptions.InvalidSelectorException:消息:无效 选择器:xpath 表达式的结果 "//*[@id="watchListPage"]/div/div[5]/div/div[1]/text()[54]" 是: [对象文本]。它应该是一个元素。

如果我删除 /text()[1] 它可以正常工作,但我需要指定我希望它读取的行。

html 看起来像这样

div class="spoiler-body" style="display: block;">

br>

br>

标题

br>

br>

文字

br>

br>

变化

br>

br>

每周........ 0 | 3.314% | 320412 | 0.67% |

br>

每月....... 0 | 23.58% | 253268 | 11.58% |

br>

季度..... 0 | 40.94% | 252030 | 11.61% |

br>

每年........ 0 | 19.2% | 186700 | 14.52% |

div>

我希望能够专门选择其中一行文本

谁能帮忙?

【问题讨论】:

  • 您是否尝试在您的 broser 中使用 xpath finder 扩展来查找 xpath ?您也可以在问题中包含网站和要查找的元素。
  • 为什么不直接使用 i.text 而删除 /text()[54] 并解析它。

标签: python-3.x selenium xpath


【解决方案1】:

嘿,不要复制 xpath,复制完整的 xpath。 例如,让我们检查一下您自己的(this)stackoverflow 问题的标题:

  • 您的问题标题的 xpath 是://*[@id="question-header"]/h1/a

  • 但是这个问题标题的完整xpath是:/html/body/div[3]/div[2]/div/div[1]/div[1]/h1/a

所以你需要复制完整的xpath而不是只复制xpath,虽然它是find_element_by_xpath()但它需要完整的xpath!

【讨论】:

    猜你喜欢
    • 2021-02-09
    • 1970-01-01
    • 1970-01-01
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多