Я только что получил ошибку в Selenium (Java):
Невозможно найти элемент с выражением xpath //*[contains(.,'Поле SomeField должно быть строкой или массивомtype с максимальной длиной '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 + "\"')]"));
Но ошибка вернется, если в аргументе будет "
.
Кто-нибудь знает, как это сделать? Спасибо за вашу помощь.