2017-03-17 67 views
0

如何讓Selenium雙擊'Res。'從下面的HTML:雙擊使用Selenium和Python的文本

<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() 

「心血管」是在網站什麼被雙擊。 如何讓我的元素更加具體,使其雙擊Res? 我的最終目標是突出文字,但我首先需要讓硒指向正確的地方。

UPDATE 當我打印元素的文本是正確的,但問題是,該位置是在句子中每個單詞相同。

>>> print(word.text) 
Res. 
>>> print(word.location) 
{'x': 33, 'y': 117} 

如果我將元素設置爲'Resio'之前的單詞'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']") 

回答

0

爲了選擇您可能嘗試的特定tspan元素:

word = browser.find_element_by_xpath("//tspan[contains(., 'Res.')]") 

或測試的內容直接(忽略任何前導/尾隨空格):

word = browser.find_element_by_xpath("//tspan[normalize-space(.)='Res.']") 
+0

感謝您的迴應。但這兩個人都給出了類似的錯誤信息: selenium.common.exceptions.NoSuchElementException:消息:沒有這樣的元素:無法找到元素:{「method」:「xpath」,「selector」:「// tspan [normalize- space(。)='Res。']「} – Ziska220

+0

@ Ziska220真的是'tspan'元素嗎? – ewcz

+0

是的。這裏有一個截圖:https://imgur.com/a/9HbYJ這有幫助嗎? – Ziska220

0

我通過改變硒的版本,並改變一箇舊版本的Firefox修復了這個問題。此外,我必須在我的'2015年早期'MacbookAir上運行此代碼,而不是我的2017年MacbookPro(可能會通過設置屏幕分辨率來解決此問題)。

下面是我使用的版本:

硒3.1.0

火狐47.0.2

壁虎驅動程序(我已經安裝在環境v0.12-15。)