Yes I would use ray casting to achieve this. There's a tuorial on ray casting here: http://docs.godotengine.org/en/latest/tutorials/ray-casting.html
And at the bottom there's a 3D specific section that talks about making a raycast from the camera to the mouse position.
You can even use groups to help with this. Put the button and any other object that can be interacted with in a group named "Interactive" or something like that. Then make sure to give anything in that group a function called "do_press" or something similar.
Then you can check if the object that the ray hits is interactable and trigger like this:
if collider.is_in_group("Interactive"):
collider.do_press()