I would probably create a mount for a solenoid, http://www.adafruit.com/search?q=solenoid&b=1, that would trigger every x second to push on the button. Two different mounts would be required if you have 2 different buttons.
Like I said on different posts, I might be wrong on my approach but I would try that.
Either way, the timing between the pushes can probably be handled using the BlinkWithoutDelay approach, which frees up the processor if there are other things to do. (ie, don't use delay() )