2016-06-06 1 views
-1

Ich versuche, den folgenden Link mit Selen klicken.Selen Suchen Sub-Child href Element

<div id="RECORD_2" class="search-results-item"> 
     <a hasautosubmit="true" oncontextmenu="javascript:return IsAllowedRightClick(this);" class="smallV110" href="#;cacheurlFromRightClick=no"></a> 
</div> 

Welche Datensatz klicken nicht bekannt ist, bevor der Code ausgeführt wird. Record_2 hat mehrere untergeordnete Elemente und das eingeschlossene ist dasjenige, auf das ich klicken möchte. Der Link wird aus Datenschutzgründen bearbeitet. Ich habe versucht, etwas so zu machen, wo Name die Rekordvariable ist, aber es funktioniert nicht.

Ich bin ein kompletter Neuling zu Selenium, also konnte ich nicht einen Weg finden, das heraus zu sortieren. Ich würde jede Hilfe schätzen. Vielen Dank!

+0

'find_element_by_css_selector (" # RECORD_2 a.smallV110 ")'? Wie sehen die restlichen Anker-Tags aus? –

Antwort

1

Beachten Sie, dass dies nicht Selenium IDE ist und Sie nicht die css= am Anfang eines Selektors benötigen.

Es gibt mehrere Möglichkeiten, um das Verbindungselement zu lokalisieren, zB:

driver.find_element_by_css_selector(".search-results-item a.smallV110") 
driver.find_element_by_css_selector("[id^=RECORD] a.smallV110") # id starts with "RECORD" 

Wenn Sie kennen den Wert id vorher:

id_i_know = 2 
driver.find_element_by_css_selector("[id=RECORD_%d] a.smallV110" % id_i_know) 

Sie müssen Attributprüfung nicht haben, dass smallV110 Klasse - Ich habe es hinzugefügt, um die Chancen zu erhöhen, andere a Elemente innerhalb der div nicht zu entsprechen (nicht sicher, was sie sind, haben Sie nicht den gesamten HTML geschrieben).

+1

Aus Pycon wiederhergestellt sehe ich;) –