Hi, I’m the author of SoupSieve, the selector library that BeautifulSoup uses.
I’m not sure what soup_link is when looking at your example, so I don’t have context on what you did before calling select_one. When I do the following it works:
from bs4 import BeautifulSoup
HTML = """
<div class="product-ico col-xs-12 col-sm-4">
<span>AAAAAAAA</span>
</div>
<div class="product-ico col-xs-12 col-sm-4">
<span>BBBBBBBBB</span>
</div>
<div class="product-ico col-xs-12 col-sm-4">
<span>CCCCCCCCC</span>
</div>
"""
soup = BeautifulSoup(HTML, 'html.parser')
print(soup.select_one('.product-ico:nth-child(2) span'))
Results
<span>BBBBBBBBB</span>
Try to narrow things down to the simplest case, it will be easier to identify the issue then.