I need to use apostrophe (') in my xpath expression which i need to use in finding elements using webdriver
i need to use below Xpath expression
//input[@text="WE'd like to hear from you"]
while using the above expression in find elements function i am replacing double quotes with single quotes
driver.findelements(By.xpath("//input[@text='WE'd like to hear from you']"))
Use the xpath as shown below:
driver.findElements(By.xpath("//input[contains(@text,\"WE'd\")]"));
Hope this helps.
You have to use double-quotes as your XPath string literal delimiter, since XPath 1.0 doesn't provide a way of escaping quotes. In addition to that, you can escape the double-quotes in Java, to avoid it from conflicting with your Java string delimiter, which also use double-quotes :
driver.findelements(By.xpath("//input[@text=\"WE'd like to hear from you\"]"))
The Escape character usage does not serve the purpose. I tried the concatenation function and it worked like a charm. Please see the below xpath.
tag: li Manager of Workflow Initiator's Manager /li
Concatenate function and split the string as –
concat('Manager of Workflow Initiator',"'",'s Manager')
Single quote is kept in double quote while other characters are kept in single quotes..
So XPath looks as –
//li[.=concat('Manager of Workflow Initiator',"'",'s Manager')]
if the above solution doesn't work then use the below solution using escape sequence.
xpath: //li[.=\"Manager of Workflow Initiator's Manager\"]
Here we are treating the whole text as a string using the escape character