Issues with the other, currently accepted, answer: Careful, both XPaths in the other answer have problems:
- //button[contains(div,'Save')]works in this case, but be aware that it will fail when
 - 
- The buttoncontains aspanor another or no element, rather than adiv.
- Other buttons exist with divelements whose string values contain the substring,"Save":"Save this","Save that","Jesus Saves", etc.
 
- //button[contains(.//div,'Save')]also works in this case, but be aware that it will fail if there are multiple- divdescendants and,
 - 
- XPath 1.0: the Savedivis not the firstdiv.
- XPath 2.0+: it is an error to pass a sequence of more than one item (divelements, in this case) as the first argument tocontains().
 
Consider instead this XPath,
//button[normalize-space() = 'Save']
which will select button elements whose space-normalized string value is exactly "Save".
Or, if for substring testing:
//button[contains(., 'Save')]
See also