2016-08-01 11 views
0

Ich habe gerade angefangen mit Selenium zu arbeiten und ich stehe vor einem Problem. Ich arbeite mit einer dynamischen Website und möchte, dass Selenium immer auf den oberen Link der Seite klickt. Alle Links beginnen mit dem folgenden XPathXPath enthält String

//*[@id='rList:0:itemFormClassic']/div[2]/h2/span/a 

Ich würde jetzt gerne wissen, ob mein xpath beginnt mit der Zeichenfolge 'rList:0:itemFormClassic']/div, so tippe ich in

//*[starts-with(@id, ''rList:0:itemFormClassic']/div')] 

Aber dies nicht funktioniert, weil das Symbol ' das ist bereits in meinem xpath enthalten ist als meine eigentliche Zeichenfolge, die ich vergleichen möchte.

Weiß jemand, wie ich das vermeiden kann?

+0

Ich bin nicht vertraut mit Selen, aber haben Sie versucht, '' " das ' '' zu entkommen? –

+0

Haben Sie versucht, die Zeichenfolge mit doppelten Anführungszeichen zu versehen? Warum sollten Sie prüfen, ob die XPaths mit beginnen? Brauchen Sie einen Selektor für Elemente mit einer ID, die mit rList beginnt? – lauda

+0

versuchen als: '// * [Starts-mit (@id," 'rList: 0: itemFormClassic']/div ")]' ..But sind Sie sicher, dass Ihre Element-ID beginnt mit ''rList: 0: itemFormClassic ']/div' ... ?? –

Antwort

1

Verwenden Sie doppelte Anführungszeichen und escape. Dies sollte funktionieren:

driver.findElement(By.xpath("//*[starts-with(@id, \"'rList:0:itemFormClassic]/div\")]"));