带有撇号的 JavascriptExecutor XPath
JavascriptExecutor XPath with apostrophe
我正在尝试使用 JavascriptExecutor 使用 XPath 查找文本元素。问题是文本有一个撇号,在这种情况下我不知道如何转义它。通常 \"
就足够了。你能帮帮我吗?
我已经尝试过以下选项:
((JavascriptExecutor)driver).executeScript("var path = '//*[text()=\"d'arrivée\"]/following-sibling::div/div';
var x = document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;x.style.display='block';");`
和
((JavascriptExecutor)driver).executeScript("var path = '//*[text()=\"d\"arrivée\"]/following-sibling::div/div';
var x = document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;x.style.display='block';");`
尝试使用转义撇号的以下表达式:
'//*[text()="d\'arrivee"]/following-sibling::div/div'
在单引号之间使用字符串时,应使用单个反斜杠转义撇号。双引号不需要在这种类型的字符串中进行转义。
作为变体,尝试找到另一个没有撇号的 Xpath 定位器。不要使用函数 "text()" 或通过 with "contains()" 使用部分文本。我觉得是真的。
首先构造你需要的XPath表达式。在 XPath 1.0 中,编写文字撇号的唯一方法是使用双引号作为字符串分隔符,因此 XPath 表达式为:
//*[text()="d'arrivee"]/following-sibling::div/div
(尽管使用“.”而不是 "text()" 是更好的做法)。
然后考虑如何将其转义为您选择的宿主语言中的字符串文字,在本例中为 Javascript。在 Javascript 中,您可以使用 '
或 "
作为字符串分隔符,然后您必须使用反斜杠转义任何出现的字符串分隔符。所以它变成了
"//*[text()=\"d'arrivee\"]/following-sibling::div/div"
或
'//*[text()="d\'arrivee"]/following-sibling::div/div'
我正在尝试使用 JavascriptExecutor 使用 XPath 查找文本元素。问题是文本有一个撇号,在这种情况下我不知道如何转义它。通常 \"
就足够了。你能帮帮我吗?
我已经尝试过以下选项:
((JavascriptExecutor)driver).executeScript("var path = '//*[text()=\"d'arrivée\"]/following-sibling::div/div';
var x = document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;x.style.display='block';");`
和
((JavascriptExecutor)driver).executeScript("var path = '//*[text()=\"d\"arrivée\"]/following-sibling::div/div';
var x = document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;x.style.display='block';");`
尝试使用转义撇号的以下表达式:
'//*[text()="d\'arrivee"]/following-sibling::div/div'
在单引号之间使用字符串时,应使用单个反斜杠转义撇号。双引号不需要在这种类型的字符串中进行转义。
作为变体,尝试找到另一个没有撇号的 Xpath 定位器。不要使用函数 "text()" 或通过 with "contains()" 使用部分文本。我觉得是真的。
首先构造你需要的XPath表达式。在 XPath 1.0 中,编写文字撇号的唯一方法是使用双引号作为字符串分隔符,因此 XPath 表达式为:
//*[text()="d'arrivee"]/following-sibling::div/div
(尽管使用“.”而不是 "text()" 是更好的做法)。
然后考虑如何将其转义为您选择的宿主语言中的字符串文字,在本例中为 Javascript。在 Javascript 中,您可以使用 '
或 "
作为字符串分隔符,然后您必须使用反斜杠转义任何出现的字符串分隔符。所以它变成了
"//*[text()=\"d'arrivee\"]/following-sibling::div/div"
或
'//*[text()="d\'arrivee"]/following-sibling::div/div'