【问题标题】:Find by Xpath doesn't work as intended? Selenium Python通过 Xpath 查找无法按预期工作?硒蟒
【发布时间】:2020-03-18 21:57:02
【问题描述】:

作为练习,我想从 this site(在左上角)通过 Selenium。

我已经用 xPath 试过了,但它不起作用! f.e.:

worldInfected = driver.find_element_by_xpath("//*[@id=\"ember584\"]/svg/g[2]/svg/text")

如果我使用它,我会得到

selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: /html/body/div/div/div[2]/div/div/div/margin-container/full-container/div[2]/margin-container/full-container/div/div/div/div[1]/svg/g[2]/svg/text

但是我从网站上复制了路径,所以它不应该给我文本

我已经在其他网站上使用相同的策略进行了尝试,并且成功了。它是否与这个确切的网站有关,如果是,是否有其他方法可以抓取此信息?

感谢您提前帮助我!

【问题讨论】:

  • 说“它不起作用”并不是什么解释。它实际上做了什么,与您预期的有何不同?
  • 另外,仅仅因为一个特定的 xpath 可以在一个网站上工作,你为什么期望它可以在另一个网站上工作?不同的网站是不同的。
  • 可能附上 html 的屏幕截图或您要定位的元素?我打开了你提到的网址,我没有看到任何 ID ember584
  • 重复?你在这里有答案:stackoverflow.com/questions/60730105/…
  • 显然我不只是使用来自另一个站点的路径,我从我想要提到的站点的文本的元素中复制了路径

标签: python selenium xpath web-crawler


【解决方案1】:

亲爱的,请像这样修改xpath,我认为可以工作

worldInfected = driver.find_element_by_xpath('//*[@id=\"ember584\"]/svg/g[2]/svg/text')

注意:如果不工作,请描述更多

【讨论】:

  • 这实际上并没有改变任何东西。
  • 我只想从帖子中链接的网站上获得全球感染人数
  • @debanjanb 在这里提供了一个非常详细的答案:stackoverflow.com/a/60743834/9978746 你读了吗?您必须先切换到 iframe。
猜你喜欢
  • 1970-01-01
  • 2021-06-01
  • 2020-03-09
  • 1970-01-01
  • 2020-05-31
  • 2016-07-28
  • 1970-01-01
  • 2021-08-19
  • 2019-07-03
相关资源
最近更新 更多