2016-12-01 2 views
2

Mit findElements() und size() Methoden können wir die Anzahl erhalten. Aber ich möchte die Anzahl mithilfe der Funktion count() im Xpath extrahieren.Wie benutzt man die count() - Funktion in Selen-XPath?

Liefert die Zählfunktion einen ganzzahligen Wert?

Angenommen, Mein XPath ist (//input[@id='stack'])[3] und es gibt 3 passende Knoten mit //input[@name='hai']

Kann ich meine XPath wie unten ändern?

(//input[@id='stack'])[count(//input[@name=''hai])] 

Antwort

2

Ja, wenn

count(//input[@name='hai']) 

zu

dann

3 

wertet

(//input[@id='stack'])[count(//input[@name='hai'])] 

die gleichen Knoten wie

wählen
(//input[@id='stack'])[3] 

würde auswählen.

Allerdings ist Ihre Absicht ziemlich unklar, vor allem, dass

  • //input[@id='stack'] alle der input Elemente mit ein id Attributwert von 'stack' gegeben wird wählen. Normalerweise id Attributwerte sind einzigartig über das Dokument, so würde dies normalerweise nur ein einzelnes Element auswählen.

  • (//input[@id='stack'])[count(//input[@name='hai'])] geht davon aus, dass es mindestens so viele Elemente, wie input'stack 'id'ed da es input Elemente genannt 'hai' - eine ungerade Annahme.

+0

Hey @kjhughes danke eine Tonne .. ihre Arbeit !! – Toothless

1

driver.findElements() gibt eine Liste der WebElements und .size() gibt die ganzzahlige Größe einer Liste, so denke ich, youd folgende besser dran tun das sein:

int myCount = driver.findElements(By.xpath("<Your Xpath Here>")).size(); 

Diese erhalten Sie die Anzahl der Elemente auf Ihrer Seite, die Ihre xpath Eingabe

Verwandte Themen