2017-08-29 9 views
0

セレンを使用してコンテンツをスクラップしようとしていますが、xpathが似ているため、リストを使用しているため、 'find_element_by_xpath'を書く必要はありません。内容を取得するための関数を書きましたが、内容は抽出されません。Python Selenium - 関数をループで使用してコンテンツを抽出する

def find_text(path): 
    driver.find_element_by_xpath(path).text 

ph_packages= ["PAY_AS_YOU_TALK", "EVENINGS_AND_WEEKEND_EXTRA"] 
for i in ph_packages: 
    ph_name.append(find_text('//*[@id="productButtonControls_ST_%s"]/label' % i)) 
    print ph_name 

このコードの出力がないが、私は機能せずに同じコードを使用する場合、それは完全に正常に動作している: はここに私のコードです。

ph_packages= ["PAY_AS_YOU_TALK", "EVENINGS_AND_WEEKEND_EXTRA"] 
for i in ph_packages: 
    ph_name.append(driver.find_element_by_xpath('//*[@id="productButtonControls_ST_%s"]/label' % i).text) 

私はこの機能を書くのに間違いをしていると思います。誰かが私にこれを手伝ってもらえますか?あなたの関数は何

def find_text(path): 
    driver.find_element_by_xpath(path).text 

を返さないためである

答えて

2

は、それはあなたに感謝し、助け

def find_text(path): 
    return driver.find_element_by_xpath(path).text 
+0

する必要があります! –

関連する問題