2017-05-04 7 views
-1

The code itselfaus einer generischen Liste auf einem generischen Element klicken

eine Hilfe mit ein paar Ideen, wie Sie benötigen auf einem generischen Element aus einer generischen Liste klicken.

Zum Beispiel muß ich letztes Listenelement auszuwählen, die <div class="venue-item">, aus der folgenden Liste: <div id="list">. Und klicken Sie auf das folgende Tag <a href="#" class="venue-actions dropdown-toggle" data-toggle="dropdown"></a>

Kann eine Python-Bibliothek erstellt werden?

<div id="list" class="row" style="opacity: 1;"> 
    <div class="venue-item"> 
     <a class="venue-actions dropdown-toggle" data toggle="dropdown" href="#"></a> 
     <ul class="dropdown-menu"> 
     <h3>test_by_alex_lggge</h3> 
     <a class="show-details-btn" href="#"> 
    <div class="venue-item"> 
     <a class="venue-actions dropdown-toggle" data toggle="dropdown" href="#"></a> 
     <ul class="dropdown-menu"> 
     <h3>test_by_alex_lggge</h3> 
     <a class="show-details-btn" href="#"> 
    <div class="venue-item"> 
     <a class="venue-actions dropdown-toggle" data toggle="dropdown" href="#"></a> 
     <ul class="dropdown-menu"> 
     <h3>test_by_alex_lggge</h3> 
     <a class="show-details-btn" href="#"> 
    <div class="venue-item"> 
     <a class="venue-actions dropdown-toggle" data toggle="dropdown" href="#"></a> 
     <ul class="dropdown-menu"> 
     <h3>test_by_alex_lggge</h3> 
     <a class="show-details-btn" href="#"> 
    <div class="venue-item"> 
     <a class="venue-actions dropdown-toggle" data toggle="dropdown" href="#"></a> 
     <ul class="dropdown-menu"> 
     <h3>test_by_alex_lggge</h3> 
     <a class="show-details-btn" href="#"> 
    <div class="venue-item"> 
     <a class="venue-actions dropdown-toggle" data toggle="dropdown" href="#"></a> 
     <ul class="dropdown-menu"> 
     <h3>test_by_alex_lggge</h3> 
     <a class="show-details-btn" href="#"> 
    <div class="venue-item"> 
     <a class="venue-actions dropdown-toggle" data toggle="dropdown" href="#"></a> 
     <ul class="dropdown-menu"> 
     <h3>test_by_alex_lggge</h3> 
     <a class="show-details-btn" href="#"> 
    <div class="item-detail"> 
     <a class="venue-actions dropdown-toggle" data toggle="dropdown" href="#"></a> 
     <ul class="dropdown-menu"> 
     <h3>test_by_alex_lggge</h3> 
     <a class="show-details-btn" href="#"> 
</div> 
<div class="organisation-details"> 
<div id="delete-schedule-26681" class="modal fade" role="dialog"> 
</div> 
</div> 
+0

Können Sie uns zeigen, was Sie ausprobiert haben? Haben Sie die xpath-Dokumentation gelesen, um beispielsweise zu erfahren, wie Sie auf das n-te Element einer Gruppe zugreifen? –

+0

Ja, ich habe die XPath-Dokumentation gelesen, aber es gibt nur Ideen für klar definierte Elemente. Aber in meinem Fall könnte die Liste der Elemente flexibel sein, wenn heute zum Beispiel 6 Elemente wären, dann könnten morgen 9 Elemente sein. Ich denke, ich sollte die Liste zählen, dann das letzte Element erkennen und danach auf ein benötigtes Kind aus dem letzten Element der Liste klicken. – Alex

+0

@Alex können Sie genauer in der Frage sein, welches Element Sie anvisieren möchten. Wenn Sie immer das letzte Element bekommen wollen, ist das machbar; wenn Sie es auch durch seinen Textwert erhalten wollen. Aber "ein generisches" zu sagen, bedeutet nichts - es sollte ein bestimmtes Muster geben, nach dem du suchst. – Todor

Antwort

0

Um die letzte <div> mit class="venue-item", benutzen Sie diese XPath zu erhalten:

(//div[@id="list"]/div[@class="venue-item"])[last()] 

Einige Erklärungen - der erste Teil (//div[@id="list"]) erhält alle Elemente mit einer solchen ID-Wert (in Ihrer Probe - 1). Die zweite (div[@class="venue-item"]) wählt alle ihre direkten Nachkommen - das wird uns eine Liste aller div mit einer solchen Klasse bekommen. Der letzte Teil - [last()] gibt das letzte Element der zurückgegebenen Liste zurück.

Die Klammern um Teil 1 & 2 sind hier, wegen xpath precedence and scope of axes and operators. In diesem speziellen Satz wird es nicht benötigt, aber wenn der Stecker b/n der 1. Teil und der 2. // wäre, würde es einen großen Unterschied machen.

+1

Vielen Dank @Todor, überprüft. Es klappt. – Alex

Verwandte Themen