【发布时间】:2017-08-09 11:57:00
【问题描述】:
如何让 Selenium 双击“Res.”来自下面的html:
<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>
当我运行以下代码时,我很接近:
word = browser.find_element_by_xpath("//*[contains(text(), 'Res.')]")
actionChains = ActionChains(browser)
actionChains.double_click(word).perform()
“Cardiovasc”是在网站上双击的内容。 如何使我的元素更具体,以便在 Res. 上双击? 我的最终目标是突出显示文本,但我首先需要让 selenium 指向正确的位置。
更新 当我打印元素的文本时,它是正确的,但问题是句子中每个单词的位置都是相同的。
>>> print(word.text)
Res.
>>> print(word.location)
{'x': 33, 'y': 117}
如果我将元素设置为“Res.”之前的“Cardiovasc”一词
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']")
【问题讨论】: