Selenium无法从span elemen获取文本

2024-10-01 15:35:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我对使用Selenium获取文本感到非常困惑。在

span标记,其中包含一些文本。当我使用driver.find_element_by_...搜索它们时,一切正常。在

但问题是不能从中得到文本。在

找到了span标记,因为我不能使用.get_attribute('outerHTML')命令,我可以看到:

<span class="branding">ThrivingHealthy</span>

但是如果我将.get_attribute('outerHTML')改为.text,它将返回空文本,这与上面看到的不正确。在

以下是示例(输出是字典片段):

^{pr2}$

'display_site': u'<span class="branding">ThrivingHealthy</span>'

display_site = element.find_element_by_css_selector('span.branding').text

'display_site': u''

正如你可以清楚地看到,有一个文本,但它找不到它。怎么了?在

编辑:我找到了一些解决办法。我刚把.text改成.get_attribute('innerText')

但我还是很好奇为什么会这样?在


Tags: text标记文本getbydisplaysiteattribute
1条回答
网友
1楼 · 发布于 2024-10-01 15:35:00

问题是有很多标记是用span.branding获取的。当我刚刚使用find_elements(复数)查询该页面时,它返回了20个标记。每一个标签似乎都加倍了。。。我不知道为什么,但我猜其中一组是隐藏的,而另一组是可见的。据我所知,这两人中的第一个是隐藏的。这可能就是为什么你不能从中提取文本。Selenium的设计是不与用户不能交互的元素交互。这很可能就是为什么您可以获取元素,但当您尝试提取文本时,它不起作用。最好的办法是用find_elements来拉动整个集合,然后循环整个集合,得到文本。你会像20循环,只得到10的文本,但看起来你仍然会得到整个集。这很奇怪,但应该行得通。在

相关问题 更多 >

    热门问题