2017-11-28 2 views
0

Warum kann ich das nicht tun folgendes:Selen XPath gespeicherten String/vs direkten String

String xpathString = "\"(//input[@name='FIN'])" + "[" + 3 + "]\""; 
      driver.findElement(By.xpath(xpathString)).click(); 

Als ich folgende Fehler

org.openqa.selenium.remote.UnreachableBrowserException: Error communicating with the remote browser. It may have died. 

jedoch erhalten, wird die folgende keinen Fehler und Arbeiten verursachen Fein

driver.findElement(By.xpath("(//input[@name='FIN'])[3]")).click(); 

der Grund, warum ich eine gespeicherte Zeichenfolge verwenden möchten ist, dass ich eine Schleife zu Schleife durch die di verwenden möchten verschiedene Instanzen und suchen Sie diejenige, die beim Klicken keinen Fehler verursacht.

Jede Hilfe wird geschätzt.

+1

Haben Sie versucht, einen Haltepunkt zu setzen oder einzustellen, nachdem Sie' xpathString' gesetzt haben, um zu sehen, welcher Wert tatsächlich ist? – TheValyreanGroup

+0

Ah ich sehe, ich war albern und habe versucht, die Anführungszeichen in meine Zeichenfolge aufzunehmen, aber sie waren offensichtlich eine Zeichenfolge im Xpath und werden nicht benötigt, wenn ich einen gespeicherten String-Wert verwende! –

Antwort

0

Ja, versuchen Sie, indem Sie einfach den umgekehrten Schrägstrich nach doppelten Anführungszeichen entfernen. wie diese,

"(// input [@ name = 'FIN']) [" + 3 + "]"

oder es dynamisch zu machen,

„(// input [ @ name = 'FIN']) ["+ i +"] "

0

Entfernen Sie die Anführungszeichen aus der gespeicherten Zeichenfolge!