Я тестирую на Java и Selenium.
Я пытаюсь выполнить щелчок по кнопке закрытия, которая имеет следующий символ Юникода: \ue01d.
OuterHTML для этого элемента выглядит так:
<input class = "form-control btn btn-clear" style = "font-family: MapIcons;
padding: 0px;" value = "" type = "button">
Я хочу попробовать и выбрать его, используя следующее:
String className = "form-control btn btn-clear";
String htmlElement = "input";
String textToFind = ""; // this should be unicode: \ue01d
List<WebElement> elements = Common.findElementsUsingHtmlXpathClass(driver, htmlElement, className);
Common.myPrint(thisClass + " elements count: " + elements.size());
for (WebElement element : elements) {
String text = element.getAttribute("value");
if (text != null) {
if (text != "") {
text = text.trim();
if (text.contains(textToFind)) {
return Common.scrollIntoView(element, driver);
}
}
}
}
return false;
Я хочу знать, что мне нужно вставить в textToFind. Система не распознает придуманный ею квадратный символ. Он не копирует и вставляет этот элемент точно.
Обратите внимание: это значение \ue01d НЕ является строкой, это значение Unicode!




Поскольку вы знаете значение Unicode вашего персонажа, вы можете проверить, находится ли это значение в строке, например:
String s = "some string";
if (s.contains("unicode value")) { // for example '\ue01d'
System.out.println("Contains!");
} else {
System.out.println("Not contains");
}
в вашем случае это будет так:
String className = "form-control btn btn-clear";
String htmlElement = "input";
String textToFind = "\\ue01d"; // unicode value
List<WebElement> elements = Common.findElementsUsingHtmlXpathClass(driver, htmlElement, className);
Common.myPrint(thisClass + " elements count: " + elements.size());
for (WebElement element : elements) {
String text = element.getAttribute("value");
if (text != null) {
if (text != "") {
text = text.trim();
if (text.contains(textToFind)) {
return Common.scrollIntoView(element, driver);
}
}
}
}
return false;