使用Selenium和Python双击文本

使用Selenium和Python双击文本,python,selenium,Python,Selenium,如何让Selenium从下面的html双击“Res.” <g class = "text"> <text x="0" y="0"> <tspan x="24" y="43" data-chunk-id="0">Cardiovasc </tspan> <tspan x="93.025390635" y="43" data-chunk-id="1">Res. </tspan> &l

如何让Selenium从下面的html双击“Res.”

<g class = "text">
    <text x="0" y="0">
        <tspan x="24" y="43" data-chunk-id="0">Cardiovasc </tspan>
        <tspan x="93.025390635" y="43" data-chunk-id="1">Res. </tspan>
    </text>
“Cardiovasc”是在网站上双击的内容。 如何使我的元素更具体,使其双击分辨率。? 我的最终目标是突出文本,但我首先需要让selenium指向正确的位置

更新 当我打印元素的文本时,它是正确的,但问题是句子中每个单词的位置都是相同的

>>> print(word.text)
Res.
>>> print(word.location)
{'x': 33, 'y': 117}
如果我将元素设置为单词'Cardiovasc',它直接位于'Res.'

word = browser.find_element_by_xpath("//*[contains(text(), 'Cardiovasc')]")
我发现它指向正确的单词,但位置相同:

>>> print(word.text)
Cardiovasc
>>> print(word.location)
{'x': 33, 'y': 117}
我还尝试在唯一id上查找元素,但得到了相同的结果:

word = browser.find_element_by_xpath("//*[@data-chunk-id='1']")

要选择特定的
tspan
元素,您可以尝试:

word = browser.find_element_by_xpath("//tspan[contains(., 'Res.')]")
或直接测试内容(忽略任何前导/尾随空格):


我通过更改Selenium版本和Firefox的旧版本解决了这个问题。此外,我必须在我的“2015年初”MacbookAir上运行此代码,而不是在2017年的MacbookPro上运行此代码(此问题可能可以通过设置屏幕分辨率来解决)

以下是我使用的版本:

硒3.1.0

火狐47.0.2


Gecko驱动程序(我在环境中安装了v0.12-15)。

感谢您的响应。但是他们都给出了类似的错误消息:selenium.common.exceptions.NoSuchElementException:message:没有这样的元素:无法定位元素:{“method”:“xpath”,“selector”:“//tspan[normalize space(.)='Res.]”}@Ziska220是真正的
tspan
?啊,它在SVG图像中-这可能有帮助:
/*[local-name()='SVG']//tspan[normalize space(.)='Res.]
Hmm仍然给出错误。它也在“g”和“text”元素中。我应该包括这些吗?
/
应该考虑到这一点(它选择任何后代,而不仅仅是直接子代),但似乎必须更加详细:
/*[local-name()='svg']/*[local-name()='tspan'并规范化空格(.)='Res.]
word = browser.find_element_by_xpath("//tspan[contains(., 'Res.')]")
word = browser.find_element_by_xpath("//tspan[normalize-space(.)='Res.']")