考虑以下 HTML 代码。
<div id="tree" style="max-height: 300px; overflow-y: scroll;" class="treeview">
<ul class="list-group">
<li class="list-group-item node-tree" data-nodeid="0" style="color:undefined;background-color:undefined;">
<span class="icon glyphicon"></span>
<span class="icon node-icon glyphicon glyphicon-unchecked">
</span>
Apples
</li>
<li class="list-group-item node-tree" data-nodeid="1" style="color:undefined;background-color:undefined;">
<span class="icon glyphicon"></span>
<span class="icon node-icon glyphicon glyphicon-unchecked">
</span>
Bananas
</li>
<li class="list-group-item node-tree" data-nodeid="2" style="color:undefined;background-color:undefined;">
<span class="icon glyphicon"></span>
<span class="icon node-icon glyphicon glyphicon-unchecked">
</span>
Mangoes
</li>
<li class="list-group-item node-tree" data-nodeid="3" style="color:undefined;background-color:undefined;">
<span class="icon glyphicon"></span>
<span class="icon node-icon glyphicon glyphicon-unchecked">
</span>
Grapes
</li>
</ul>
</div>
我尝试使用获取文本“Apples”、“Bananas”、“Mangoes”和“Grapes”
i = 1
m = 2
while i < m:
css_id = ".list-group-item:nth-child(" + str(i) + ") > .node-icon"
try:
fruit_text = driver.find_element(By.CSS_SELECTOR, css_id).text
print(fruit_text)
i += 1
m += 1
except:
i += 1
但结果没有打印任何字符串。
有什么办法可以解决这个问题吗?
最佳答案
这应该适合你:
fruits_list = driver.find_elements_by_css_selector('.list-group-item.node-tree')
for fruit in fruits_list:
print(fruit.text)
只要确保.list-group-item.node-tree
这个css选择器应该在网页上指示水果。
关于python - 如何从 Selenium Python 中的元素列表中获取文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58315442/