Html Python Selenium无法找到迭代跨度类的文本

Html Python Selenium无法找到迭代跨度类的文本,html,python-3.x,selenium-webdriver,web-scraping,Html,Python 3.x,Selenium Webdriver,Web Scraping,无法打印“范围文本” 预期产出 Hello-World Foo-Bar 给定的HTML代码片段: <div class="information-container"> <ul> <li class="info-item"> <span class="info-text"> Hello-World </span>

无法打印“范围文本”

预期产出

Hello-World
Foo-Bar
给定的HTML代码片段:

<div class="information-container">
  <ul>
          <li class="info-item">
              <span class="info-text">
                     Hello-World

              </span>
          </li>
  </ul>
  <ul>
          <li class="info-item">
              <span class="info-text">

                      Foo-Bar

              </span>
          </li>
  </ul>
</div>
page = self.browser.find_element_by_class_name("information-container")
for elem in page.find_elements_by_xpath('.//span[@class = "info-text"]'):
            print("E>", elem.text)
            attrs = self.browser.execute_script('var items = {}; for (index = 0; index < arguments[0].attributes.length; ++index) { items[arguments[0].attributes[index].name] = arguments[0].attributes[index].value }; return items;', elem)
            pprint(attrs)
page = self.browser.find_element_by_class_name("information-container")
li_objs = page.find_elements_by_class_name('info-text')
for o in li_objs:
    print("text:", o.text)
我的解析代码(方法2):

<div class="information-container">
  <ul>
          <li class="info-item">
              <span class="info-text">
                     Hello-World

              </span>
          </li>
  </ul>
  <ul>
          <li class="info-item">
              <span class="info-text">

                      Foo-Bar

              </span>
          </li>
  </ul>
</div>
page = self.browser.find_element_by_class_name("information-container")
for elem in page.find_elements_by_xpath('.//span[@class = "info-text"]'):
            print("E>", elem.text)
            attrs = self.browser.execute_script('var items = {}; for (index = 0; index < arguments[0].attributes.length; ++index) { items[arguments[0].attributes[index].name] = arguments[0].attributes[index].value }; return items;', elem)
            pprint(attrs)
page = self.browser.find_element_by_class_name("information-container")
li_objs = page.find_elements_by_class_name('info-text')
for o in li_objs:
    print("text:", o.text)
输出(方法2):

<div class="information-container">
  <ul>
          <li class="info-item">
              <span class="info-text">
                     Hello-World

              </span>
          </li>
  </ul>
  <ul>
          <li class="info-item">
              <span class="info-text">

                      Foo-Bar

              </span>
          </li>
  </ul>
</div>
page = self.browser.find_element_by_class_name("information-container")
for elem in page.find_elements_by_xpath('.//span[@class = "info-text"]'):
            print("E>", elem.text)
            attrs = self.browser.execute_script('var items = {}; for (index = 0; index < arguments[0].attributes.length; ++index) { items[arguments[0].attributes[index].name] = arguments[0].attributes[index].value }; return items;', elem)
            pprint(attrs)
page = self.browser.find_element_by_class_name("information-container")
li_objs = page.find_elements_by_class_name('info-text')
for o in li_objs:
    print("text:", o.text)

页面上所有span标记中的文本可以使用以下命令显示

from selenium import webdriver

driver = webdriver.Firefox(executable_path = 'path_to_driver')
driver.get('path_to_site')

elements = driver.find_elements_by_tag_name('span')

for element in elements:
    text = element.text
    print(text)

我已经试过了你的两种方法,它们在我的目的地起了作用。唯一的区别是,我在webdriver的直接实例下运行,而不是作为类方法的一部分,即
browser.find\u elements…
而不是
self.browser…
。我猜问题在于您定义类方法和/或对实例方法的调用的方式,您在问题中没有分享这些。