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…
。我猜问题在于您定义类方法和/或对实例方法的调用的方式,您在问题中没有分享这些。