我正在使用Java和Selenium进行测试。
我正在尝试单击关闭按钮,该按钮具有以下Unicode字符:\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值!
答案 0 :(得分:1)
由于您知道字符的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;