web-dev-qa-db-fra.com

Comment utiliser l'apostrophe (') dans xpath tout en trouvant un élément à l'aide d'un pilote Web?

J'ai besoin d'utiliser une apostrophe (') dans mon expression xpath que je dois utiliser pour trouver des éléments à l'aide de webdriver

j'ai besoin d'utiliser ci-dessous l'expression Xpath

//input[@text="WE'd like to hear from you"]

tout en utilisant l'expression ci-dessus dans la fonction find elements, je remplace les guillemets doubles par des guillemets simples

driver.findelements(By.xpath("//input[@text='WE'd like to hear from you']"))
14

Utilisez le xpath comme indiqué ci-dessous:

driver.findElements(By.xpath("//input[contains(@text,\"WE'd\")]"));

J'espère que cela t'aides.

21
k.s. Karthik

Vous devez utiliser des guillemets doubles comme votre délimiteur littéral de chaîne XPath, car XPath 1.0 ne fournit pas un moyen d'échapper aux guillemets. En plus de cela, vous pouvez échapper les guillemets doubles en Java, pour éviter qu'il n'entre en conflit avec votre délimiteur de chaîne Java, qui utilise également des guillemets doubles:

driver.findelements(By.xpath("//input[@text=\"WE'd like to hear from you\"]"))
5
har07

L'utilisation du caractère d'échappement ne sert pas le but. J'ai essayé la fonction de concaténation et cela a fonctionné comme un charme. Veuillez consulter le xpath ci-dessous.

tag: li Manager de Workflow Initiator's Manager/li

Fonction concaténer et diviser la chaîne comme -

concat('Manager of Workflow Initiator',"'",'s Manager')

guillemet simple est conservé dans guillemet double tandis que les autres caractères sont conservés entre guillemets simples ..

XPath ressemble donc à -

//li[.=concat('Manager of Workflow Initiator',"'",'s Manager')]
1
Moin

si la solution ci-dessus ne fonctionne pas, utilisez la solution ci-dessous en utilisant la séquence d'échappement.

xpath: //li[.=\"Manager of Workflow Initiator's Manager\"]

Ici, nous traitons le texte entier comme une chaîne en utilisant le caractère d'échappement

1
Moin