2016-06-10 17 views
0

Der Versuch, einen XPath-Ausdruck zu finden in verwenden:Java Selen. Finden Element von Text für bestimmte XPath

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPATH HERE"))).click(); 

Das Element sagt „einladen Benutzer“ auf der Seite und ich muss in der Lage sein, auf sie

klicken ich brauche das Element /a[@id='inviteUsers_8ef17ba4-b739-4fb6-8198-3862ea84c381_toggle'] aber das Problem ist, die Zeichen nach „inviteUsers_“ dynamisch

ich habe erzeugt wird bereits diese versucht zu finden:

"//*[contains(.,'Invite Users')]"; 
"//a[contains(.,'Invite Users')]"; 

Und diese geben NoSuchElement Ausnahmen.

Dies ist die komplette XPATH:

/html/body/div[@class='col-xs-10 col-xs-offset-2 main']/fieldset[@class='form-horizontal']/div[@id='roles']/div[@id='entitlements']/div[@class='panel panel-default '][3]/div[@id='service_8ef17ba4-b739-4fb6-8198-3862ea84c381']/div[@class='panel-body']/div[@class='panel panel-default'][1]/div[@class='panel-heading']/h4[@class='panel-title']/a[@id='inviteUsers_8ef17ba4-b739-4fb6-8198-3862ea84c381_toggle'] 
+0

Haben Sie Ihre Antwort gefunden? Wenn nicht, posten Sie bitte den relevanten HTML-Code für den Link, auf den Sie klicken möchten. – JeffC

Antwort

1

Sie es mit starts-with() lösen können:

//a[starts-with(@id, "inviteUsers_")] 
+0

Das Element konnte leider immer noch nicht gefunden werden :(Fehle ich etwas vom xpath? Vielleicht muss ich ein bestimmtes div bekommen, bevor ich auf das Element zugreife? – shanwar

+0

@shanwar nein, wenn es so versagt, würde es mit einem bestimmten fehlschlagen "div" auch. Ist dies eine öffentliche Seite und Sie können einen Link zu ihr teilen? Danke. – alecxe

+0

Kann das nicht tun Entschuldigung. Vertrauliche Seite in der Entwicklung. Könnte es sein, dass dieses Element in einer Art Drop-down-Bereich nach erscheint ein nachfolgender Klick auf ein vorheriges Element, so dass es fehlschlägt? Ich würde denken, dass die Wartezeit (7 Sekunden vor dem Timeout) dafür sorgt ... – shanwar

0

Wenn dies nicht versuchen, funktioniert ein einzigartig Eltern finden.

//div[contains(@id, 'service')]//a[contains(@id, 'inviteUsers')]

Verwandte Themen