2017-03-17 21 views
0

「Res。」をダブルクリックするにはどうすればよいですか?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> 

私は近いです、私は次のコードを実行:以下のhtmlから

word = browser.find_element_by_xpath("//*[contains(text(), 'Res.')]") 
actionChains = ActionChains(browser) 
actionChains.double_click(word).perform() 

「Cardiovascのウェブサイトにダブルクリックされたものです。 私の要素をより具体的にすることができますので、Res。でダブルクリックしますか? 私の究極の目標はテキストを強調することですが、まずはセレンが正しい場所を指差しているようにする必要があります。

UPDATE 要素のテキストを印刷するときは正しいが、問題は、文中の各単語の場所が同じであるということです。

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

「Res。」の直前の「Cardiovasc」という単語に要素を設定すると、

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

私も同じ結果一意のIDの要素を見つけることが、取得しようとしました::

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

答えて

0

word = browser.find_element_by_xpath("//*[contains(text(), 'Cardiovasc')]") 

は、私はそれが正しい単語が、同じ場所を指し得ます

特定のtspan要素を選択するには、試してみてください:

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

または直接(任意リーディング/末尾の空白を無視して)コンテンツをテストする:私はセレンのバージョンを変更するとFirefoxの古いバージョンに変更することによってこの問題を修正

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

ここで私が使用したバージョンは、応答していただきありがとうございます。しかし、両方とも同様のエラーメッセージを出しました: selenium.common.exceptions.NoSuchElementException:メッセージ:そのような要素:要素を見つけることができません:{"method": "xpath"、 "selector": "// tspan [normalize-スペース(。)= 'Res。'] "} – Ziska220

+0

@ Ziska220は本当に' tspan'の要素ですか? – ewcz

+0

はい。ここにスクリーンショットがあります:https://imgur.com/a/9HbYJそれは役に立ちますか? – Ziska220

0

。さらに、私は自分の「Early-2015 Early」MacbookAirでこのコードを実行しなければならず、2017 MacbookProではない(この問題はおそらく画面解像度の設定で解決できる)。

セレン3.1.0

のFirefox 47.0.2

Geckoのドライバー(私は環境にインストールv0.12-15を持っている。)

関連する問題