我刚刚在 Selenium(Java) 中遇到错误:
无法使用 xpath 表达式定位元素 //*[contains(.,'字段 SomeField 必须是字符串或数组类型,最大长度为 '60'。')]
显然,有两个'
打破了表达。所以我改变了代码
WebElement elem = findElement(By.xpath("//*[contains(.,'" + arg + "')]"));
到
WebElement elem = findElement(By.xpath("//*[contains(.,'" + arg.toString().replace("'", "\'") + "')]"));
WebElement elem = findElement(By.xpath("//*[contains(.,'" + arg.toString().replace("'", "\\'") + "')]"));
WebElement elem = findElement(By.xpath("//*[contains(.,'" + arg.toString().replace("'", "\\\'") + "')]"));
他们都没有工作。现在我通过这样做暂时解决它:
WebElement elem = findElement(By.xpath("//*[contains(.,\"" + arg + "\"')]"));
但如果 arg 包含在其中,则该错误将再次出现"
。
有谁知道该怎么做?谢谢你的帮助。