SyntaxError: Failed to execute 'evaluate' on 'Document' error passing parameter as xpath?

Viewed 568

I am trying to pass an xpath as a parameter(redirectButton):

WebElement zoomLogo = driver.findElement(By.xpath(redirectButton));

Line in testsuite.xml looks like this:

            <parameter name="redirectButton" 
        value="&quot;//img[@alt='zoom logo colour long']&quot;)" />

But when I try to run the test through the testsuite file using testng it shows the following error:

SyntaxError: Failed to execute 'evaluate' on 'Document': The string '"//img[@alt='zoom logo colour long']")' is not a valid XPath expression.

I am sure I have proper xpath because when I paste it directly into the code then everything works fine, but when I try to do it via parameter its not working.

Is it possible to do it by parameters?

1 Answers

This error message...

SyntaxError: Failed to execute 'evaluate' on 'Document': The string '"//img[@alt='zoom logo colour long']")' is not a valid XPath expression.

...implies that the which you have used was not a valid XPath expression.

Seems you were almost there. You need to remove the two &quot; characters and the extra ) to make it a valid xpath expression as follows:

<parameter name="redirectButton" value="//img[@alt='zoom logo colour long']" />

References

You can find a couple of relevant detailed discussions in:

Related