2017-07-18 3 views
-1

Ich verwende Selenium PhantomJS, um kopfloses dynamisches Scraping durchzuführen. Ich konnte alle Informationen außer Popups von einer ng-click, wie ausgelöst extrahieren:Suche nach Label in Selenium Python

<button href="#" ng-click="navigation.login({edu:false})">login</button> 
<a class="btn btn-primary" ng-click="login()">signup</a> 

ich den Tag zu bekommen, die ng-Klick-Label enthält, so dass ich Onclick Aktivität durchführen kann und extrahieren Informationen von ihm.

Die ng-click Wert und Tag kann alles sein, ich möchte nur suchen, ob ein Tag enthält ng-click oder nicht, und wenn es dann dieses Tag zurückgibt. Ich möchte Regex oder so etwas nicht verwenden.

+0

Warum nicht einen regulären Ausdruck verwenden? –

+0

keine gute Option ... –

+0

XPATH ist, wie Sie diese Probleme leicht lösen, obwohl ... –

Antwort

0

Es funktioniert.

elements = driver.find_elements_by_xpath("//*[(@ng-click)]")

1

Die einfachste Lösung ist die Verwendung von XPath zur Überprüfung der Länge des Werts von ng-click.

elements = driver.find_elements_by_xpath("//*[string-length(@ng-click) > 1]") 
for element in elements: 
    element.click()