【问题标题】:Can't find element with Selenium even though I know the element exists即使我知道元素存在,也无法使用 Selenium 找到元素
【发布时间】:2017-11-30 23:30:50
【问题描述】:

好的,我正在努力寻找

<span class="totalcount">171</span>

https://boston.craigslist.org/search/sss?query=food+stamps&sort=rel&search_distance=200&postal=01841

pagelement = driver.find_element_by_class_name('totalcount')

但由于某种原因,我不断收到以下错误

selenium.common.exceptions.NoSuchElementException: Message: Unable to find element with css selector == .totalcount

作为参考,我正在使用带有 Selenium 的 Internet Explorer 11,因为我的老板要求我从 Firefox 切换到它。这可能是导致问题的原因吗? (在有人问之前,我知道这不是因为页面还没有加载,我专门添加了一个等待来处理。)

【问题讨论】:

  • 您检查过 Internet Explorer 中的实时 DOM 吗?为什么你还是从 Firefox 切换到 IE11?
  • 能否分享html源代码
  • @WillemVanOnsem 因为我的老板要求我这样做。
  • @MoeGhafari 当然。是boston.craigslist.org/search/…(我在美国农业部工作,我正在尝试制作一个刮板,它会自动报告有人试图在 craigslist 上出售食品券。)
  • 我在link 上没有找到任何171,但我确实在1 - 120 / 172 中找到了172,你在找那个吗?

标签: python selenium internet-explorer-11


【解决方案1】:

我确实为我工作,但我使用 find_elements,因为有多个元素具有相同的定位器策略并且还使用 chrome

不确定它是否会对您有所帮助,但您可以使用以下代码以获得更好的方法

更新:厌倦了 IE 及其工作

from selenium.webdriver import Ie

driver = Ie('path to IE driver')
driver.get('https://boston.craigslist.org/search/sss?
query=food+stamps&sort=rel&search_distance=200&postal=01841')

total_count = [x.text for x in driver.find_elements_by_class_name('totalcount')]
print(total_count)

 ['170', '170']

【讨论】:

  • 问题是关于 IE 而不是 chrome
  • 它似乎对我不起作用。我现在收到一条错误消息,提示“OSError:[WinError 740] 请求的操作需要提升”。这是否意味着我需要将驱动程序设置为以管理员身份运行?
  • 试试看。对不起,我从来没有遇到过这个问题,也许其他人可以帮助你。但是代码在我的系统中有效,我是我系统的管理员
猜你喜欢
  • 1970-01-01
  • 2018-10-18
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 2021-12-17
相关资源
最近更新 更多