Selenium - Find elements using XPath

XPath Syntax Example
Absolute XPath /node1/node2 /html/body/div[1]/main/div/div[1]/div[1]/input[3]
Relative XPath //TagName[@Attribute='Value'] //input[@id='email']
Wildcard //*[@Attribute='Value'] //*[@id='email']
Index //TagName[@Attribute='Value'][Index] //input[@type='text'][3]
Contains //tagname[contains(@Attribute, 'Value')] //input[contains(@placeholder, 'First')]
Text contains //tagname[contains(text(), 'Value')] //label[contains(text(), 'Radio')]
Text equal //tagname[text()='Value'] //button[text()='Submit']
OR operator //TagName[@Attribute1='Value1' or @Attribute2='Value2'] //input[@id='email' or @placeholder='Email']
AND operator //TagName[@Attribute1='Value1' and @Attribute2='Value2'] //input[@id='email' and @placeholder='Email']
XPath chaining //TagName[@Attribute='Value']//TagName[@Attribute='Value'] //div[@id='form']//input[@id='email']
Following //TagName[@Attribute='Value']/following::TagName //input[@id='email']/following::input
Following-sibling //TagName[@Attribute='Value']/following-sibling::TagName //input[@id='firstName']/following-sibling::input
Preceding //TagName[@Attribute='Value']/preceding::TagName //input[@id='radio']/preceding::input
Preceding-sibling //TagName[@Attribute='Value']/preceding-sibling::TagName //input[@id='email']/preceding-sibling::input
Parent //TagName[@Attribute='Value']/parent::TagName //input[@id='email']/parent::div
Parent //TagName[@Attribute='Value']/.. //input[@id='email']/..
Child //TagName[@Attribute='Value']/child::TagName //div[@id='form']/child::input[@id='email']
Descendant //TagName[@Attribute='Value']/descendant::TagName //div[@id='form']/descendant::input
Ancestor //TagName[@Attribute='Value']/ancestor::TagName //input[@id='email']/ancestor::div