Intento obtener un elemento como este:
webDriver.findElement(By.xpath("//a[contains(@onclick="submitData('updateShortcodeAdmin','')")]"));o así :
webDriver.findElement(By.xpath("//a[contains(@onclick=\"submitData(\'updateShortcodeAdmin\',\'\');")]\"));o así :
webDriver.findElement(By.xpath("//a[contains(@onclick=\"submitData(\'updateShortcodeAdmin\',\'\')\")]"));y obtuve el mismo error:
org.openqa.selenium.InvalidSelectorException: invalid selector: Unable to locate an element with the xpath expression //a[contains(@onclick="submitData('updateShortcodeAdmin','')")] because of the following error: SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//a[contains(@onclick="submitData('updateShortcodeAdmin','')")]' is not a valid XPath expression.¿Qué estoy escribiendo mal?
Gracias !
Utilice el siguiente xpath:
//a[contains(@onclick,'submitData('updateShortcodeAdmin')')]Explicación :
Estás usando = en el método contiene, debería haber sido ,
Revisé en el compilador que
webDriver.findElement(By.xpath("//a[contains(@onclick,'submitData('updateShortcodeAdmin')')]"));no muestra ningún error de compilación.
PD: compruebe en las dev tools de desarrollo (Google Chrome) si tenemos una entrada única en HTML DOM o no.
Pasos para comprobar:
Press F12 in Chrome -> vaya a la sección de element -> haga CTRL + F -> luego pegue el xpath y vea si su element deseado se resalta con el nodo coincidente 1/1 .
Actualizar :
webDriver.findElement(By.xpath("//a[contains(@onclick,'updateShortcodeAdmin')]"));