Ich habe ein Array, die ich gesammelt:Kann nicht Text eines Elements in einem Array Zugriff mit Pageobject und Watir
array= @browser.ul(:class => 'parent').links
Ich bin dann in das Array iterieren den Text auf ein bestimmtes Element zuzugreifen versuchen, das Array wie folgt:
array.each_with_index do |i, index|
Wenn ich etwas tun:
array[index]
bekomme ich das Ankerelement-Objekt zurück. Und wenn ich das tue:
array[index].element
Ich werde ein HTML-Element-Objekt zurück erhalten. Aber wenn ich versuche, etwas elementspezifisches zu bekommen, wie zum Beispiel:
dann bekomme ich einen "Unable to locate element" -Fehler.
Ich verwende Watir, Page Object und Ruby. Hier
ist der Umfang der gesamten Arrays Iteration, es ist ziemlich einfach:
array= @browser.ul(:class => 'parent').links
array.each_with_index do |i, index|
if index == array.length-1
sleep 1
@browser.button(:text => 'Complete').when_present.click
else
sleep 1
@browser.button(:text => 'Complete').when_present.click
@browser.a(:text => 'Next').when_present.click
end
end
Ich versuche, ein elsif
hinzuzufügen, die für den Text eines Link überprüft, so dass, wenn es auf dieser bestimmten Seite/Link es tut etwas Besonderes, während auf dieser Seite.
Zum Beispiel in Pseudocode:
Wenn Array-Element text = "Anweisungen", dann die komplette Schaltfläche nicht klicken, gleich neben klicken.
Ich glaube, ich offen sein würde dies in irgendeiner Weise zu lösen, die mir den Link lässt erkennen es aktuell ist, so dass ich eine Reihe Aktion durchführen kann, aber ich dachte, den Text des aktuellen Link greifen würde am einfachsten, daher die Frage.
Wie kann ich auf den Text oder bestimmte Attribute eines Elements in diesem Array zugreifen?
Zwischen dem Zeitpunkt, an dem Sie das 'array' erstellen und dann' array [index] 'aufrufen, führen Sie Aktionen durch, die einen Teil der Seite aktualisieren würden? –
Wahrscheinlich. Grundsätzlich bewegt sich die Iteration durch jede Verbindung. Also klickt es auf einen "vollständigen" Knopf, der einige Sachen auf der Seite verbirgt und dann auf einen "nächsten" Knopf klickt, der ihn zum nächsten Link im Array bewegt. Dann beginnt die nächste Iteration und es wiederholt sich. Ich kann mit dem ganzen Abschnitt des Array-Codes aktualisieren, wenn das hilft. Wenn ich das Array [index] ausprobiert habe (ich habe versucht herauszufinden, ob und wie ich auf den Text zugreifen könnte), war es im Debug-Modus auf den vollständigen Button-Schritt klicken, also wenn ein Element aus dem Array geladen werden soll. – Mayshar
Willkommen bei Stack Overflow. Bitte lesen Sie "[mcve]". Nur eine Beschreibung des Problems lässt uns versuchen, sich vorzustellen, was Sie tun, aber Code und Daten machen es sehr offensichtlich. Wir können Ihnen breite Antworten geben, aber Stack Overflow ist eine detaillierte Antwort. Bitte geben Sie weitere Informationen an, einschließlich des minimalen Codes/der erforderlichen Daten, um das Problem zu veranschaulichen. Es muss nicht Watir verwenden, einfach die minimale Struktur in Ihrem Code neu erstellen. Es hilft uns, dir zu helfen. –