在浏览器以及Selenium使用的XPath 1.0中,没有原生的转义字符串文字的方式(在XPath
2.0中已得到补救)。一个小的解决方法是通过这张海报提及,其中包括:
- 首先,请确保您了解可能的转义与XPath表达式中的转义之间的区别
- 然后,如果您只需要单引号,则将双引号括起来,反之亦然
- 然后,如果一个字符串文字同时包含双引号和单引号,则使用类似的东西
concat('"', "Here's Johnny", '"', ", said Johnny."),将其与文字相结合:"Here's Johnny", said Johnny.
。
在您的情况下,这将起作用:
driver.find_element_by_xpath(u"//span[text()="" + cat2 + ""]").click()
解决此问题的另一种方法是设置XPath变量以包含字符串文字的值,这有助于提高可读性。但是我找不到如何使用Selenium的Web驱动程序来执行此操作,这通常意味着没有这种方法可用。



