2017-04-15 10 views
4

を返し、私はこのpageのヘッダー内のテキストを取得しようとしています:Pythonのセレン:H1要素を検索しますが、空のテキスト文字列

enter image description here

iシェアーズFTSE MIB UCITS ETFユーロ(ディスト)

タグは次のようになります。

<h1 class="product-title" title="iShares FTSE MIB UCITS ETF EUR (Dist)"> iShares FTSE MIB UCITS ETF EUR (Dist) </h1> 

私はこのXPathを使用しています:

Python用セレンwebdriverを中 .textを経由して取得
xp_name = ".//*[@class[contains(normalize-space(.), 'product-title')]]" 

を:

new_name = driver.find_element_by_xpath(xp_name).text 

ドライバは、XPathを見つけたが、私はnew_nameを印刷するとき、MacOSのターミナルは、空白文字列を出力します。 ""

これにはどのような理由が考えられますか?

enter image description here


注:私も同じ結果を得る、いくつかの他のXPathの選択肢を試してみました、と例えば:

xp_name = ".//*[@id='fundHeader']//h1" 

答えて

4

問題は完全に2つのh1の要素があるということです同じ外側HTML:最初のものは隠され、2番目のものは隠されていません。あなたは

print(len(driver.find_elements_by_xpath('//h1[@class="product-title "]'))) 

textプロパティでそれを確認することができますtextContent属性ものテキストを置き換えるために1

てみてください隠さ取得できるようにしながら、のみ表示要素からテキストを取得することができ

new_name = driver.find_element_by_xpath(xp_name).text 

new_name = driver.find_element_by_xpath(xp_name).get_attribute('textContent') 

又は単に第二(可視)ヘッダ処理:問題の説明と

driver.find_elements_by_xpath('//h1[@class="product-title "]')[1].text 
+1

チェック更新の答えを – Andersson

関連する問題