This is a little bit tricky.
The sprite's rectangle is (0, 0, sprite.GetSubRect().GetWidth(), sprite.GetSubRect().GetHeight()). But this is in local coordinates. Now you have to convert this rectangle to global coordinates, which means applying the same translation/rotation/scale that you applied to the sprite. This can be done by calling sprite.TransformToGlobal on every corner of the rectangle. Be careful, if you applied a rotation the result won't be an aligned rectangle anymore.
If you have not rotation, there's a simpler formula:
sf::FloatRect rect;
rect.Left = sprite.GetPosition().x;
rect.Top = sprite.GetPosition().y;
rect.Right = rect.Left + sprite.GetSize().x;
rect.Bottom = rect.Top + sprite.GetSize().y;