2017-08-29 2 views
0

Ich versuche, den Inhalt mit Selen zu kratzen und da die XPaths ähnlich sind, verwende ich eine Liste, so dass ich nicht 'find_element_by_xpath' schreiben muss. Ich habe eine Funktion geschrieben, um den Inhalt zu erhalten, aber der Inhalt wird nicht extrahiert. Hier ist mein Code:Python Selenium - Extrahieren von Inhalten mit Funktion in einer Schleife

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 

Es gibt keine Ausgabe mit diesem Code, aber wenn ich ohne die Funktion den gleichen Code verwendet wird, dann funktioniert es völlig in Ordnung.

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) 

Ich denke, ich mache einen Fehler beim Schreiben der Funktion. Könnte mir jemand dabei helfen?

Antwort

2

Das liegt daran, dass Ihre Funktion nichts zurückliefert

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

sein sollte

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

Es half, danke! –

Verwandte Themen