似乎找不到值包含双引号的 XPath

Can't seem to find an XPath with a value that contains double quotes

我已经通读了论坛,显然几乎没有人会遇到查找带有双引号的值的 XPath 的问题,我发现的大多数帖子都谈到查找带有单引号和双引号的值的元素的 Xpath,所以我决定问这个问题,如果其他地方已经回答了这个问题,我深表歉意。

反正我要找的元素大致是这样的:

<a class="product" title="REALIZE  "WHY  NO.T"" width="454" height="423" alt="" id="">
    </a>

我尝试使用 Selenium Webdriver 多次更改 XPath 但没有成功

'//a[@title="REALIZE "WHY  NO.T""]' 

'//a[@title="REALIZE \"WHY  NO.T\""]'

"//a[@title="REALIZE \"WHY  NO.T\""]"

这些是我尝试过的几个,还有几个但是我没有保存我尝试过的所有

我觉得这可能是我遗漏了一些非常基本的东西的问题,但我一直在寻找答案几个小时都没有成功

我会推荐 右键单击目标元素 > 单击检查元素 > 在控制台中查看元素 > 复制 xpath > 粘贴它并分析它的输出方式。

然后我会将其与您当前的解决方案进行比较,并可能调整一两件事。

//*[@title='REALIZE "WHY NO.T"']

您必须用单引号将内容括起来,python 代码将是 ( 转义单引号

driver.find_element_by_xpath('//*[@title=\'REALIZE "WHY NO.T"\']')

你说“我想找的元素大致是这样的:”

“差不多”?这到底是什么意思?是更像这样,还是更像这样?如果我们不确切知道它是什么样的,我们如何帮助您?

然后你说:

<a class="product" title="REALIZE  "WHY  NO.T"" width="454" height="423" alt="" id="">
    </a>

但是格式不正确XML。解析器应该如何计算出 title 属性结束的位置? XML 解析器应该在那时将其丢弃。

好的,您可能正在使用 HTML 解析器而不是 XML 解析器,并且 HTML 解析器会尝试理解您扔给它们的任何旧垃圾。但我不知道 HTML 解析器将如何处理此输入。 HTML 解析器很聪明,但它们不够聪明,无法确定这些引号中哪些是属性值的一部分,哪些标记了属性值的开始和结束。它可能变成了与您期望的完全不同的东西,这就是您的 XPath 表达式不起作用的原因。