2016-10-08 9 views
0

を返しなさい:私はこれを試してみたスパンからのテキストは、PythonとセレンとDIV私は、この内部スパンからテキストを取得しようとしている空の文字列

<div class="product-name"> 
    <span class="h1" itemprop="name">TEXT</span> 
</div> 

、しかし、これは空の文字列を返します。あなたは以下のように1つのfind文で欲望の要素を見つけるために、css_selectorを使用してみてください事前に

line = dr.find_element_by_class_name('product-name').find_element_by_xpath('.//span').text 

おかげで、

+0

'line = dr.find_element_by_xpath( '// div [@ class ="製品名 "]/span')。テキスト'のように検索を簡略化することができます。それでも動作しない場合は、同期の問題です(要素を検索するのではなく、要素を待つ) –

答えて

1

: -

line = dr.find_element_by_css_selector('div.product-name > span').text 

あなたはまだ空の文字列としてget_attribute("textContent")を使用してみて取得している場合: -

line = dr.find_element_by_css_selector('div.product-name > span').get_attribute("textContent") 

またはAS get_attribute("innerHTML")を使用して: -

line = dr.find_element_by_css_selector('div.product-name > span').get_attribute("innerHTML") 

: - あなたはまた、操作上使用することができますclass_nameを使用して親の<div>要素のinnerTextを取得するには、欲しいテキストのみがある場合:

line = dr.find_element_by_class_name('product-name').text 

それとも

line = dr.find_element_by_class_name('product-name').get_attribute("textContent") 
+1

はい、私はCSSセレクタを使用していますが、動作しますが、私のアプローチがなぜ作業。 – cuoka

+0

あなたのアプローチがうまくいかない理由、あなたのアプローチもまったく正しいと言うことは難しいです。同じクラス名の要素があり、それは欲望の代わりに他のスパンを探していると思います。ありがとう.. –

0

私はBS4がより直感的な見つけ、prehapsこれは、より良い、スイートでしょうか?

line = dr.find_element_by_classname('product-name') 

が間違って覚えている可能性があります:あなたのコードについては

from bs4 import BeautifulSoup as bs4 


def main(): 
    html = """<div class="product-name"> 
      <span class="h1" itemprop="name">TEXT</span> 
      </div>""" 
    soup = bs4(html, "html.parser") 
    print(soup.find_all('div', {"class": "product-name"})) 


if __name__ == '__main__': 
    main() 

..

line = dr.find_element_by_class_name('product-name').find_element_by_xpath('.//span').text 

はたぶんともっと何かインラインことになって。

関連する問題