如何在使用webdriver查找元素时在xpath中使用撇号(’)?

我需要在我的xpath表达式中使用撇号(’),我需要在使用webdriver查找元素时使用它

我需要使用下面的Xpath表达式

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

在find元素函数中使用上面的表达式时,我用单引号替换双引号

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

使用xpath,如下所示:

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

希望这可以帮助。

您必须使用双引号作为XPath字符串文字分隔符 ,因为XPath 1.0不提供转义引号的方法。 除此之外,您可以在Java中转义双引号,以避免它与您的Java字符串分隔符冲突,后者也使用双引号:

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

Escape角色使用不起作用。我尝试了连接function,它就像一个魅力。 请参阅下面的xpath。

tag:工作流程发起人经理/李经理

连接函数并将字符串拆分为 –

concat(’工作流程发起人经理’,”’,’经理’)

单引号保留为双引号,而其他字符保存在单引号中。

所以XPath看起来像 –

//li[.=concat(‘Manager of Workflow Initiator’,”’,’经理’)]

希望这可以帮助。 🙂

如果上述解决方案不起作用,则使用转义序列使用以下解决方案。

xpath://li [。= \“工作流程启动器经理的管理员”

这里我们使用转义字符将整个文本视为字符串