Я пытаюсь автоматизировать некоторый тест, чтобы открыть Jstree Nodes, используя имя Node. Я бы хотел, чтобы он щелкал по стрелке слева от узла, вместо того, чтобы дважды щелкнуть сам узел.Вот код
public void abrirSistema(String node) {
Boolean isPresent = driver.findElements(By.xpath("//*[contains(text(),'" + node + "')]")).size() > 0;
if (isPresent) {
System.out.println("System está abierto");
} else {
System.out.println("Hay que abrir el sistema");
WebElement system = driver.findElement(By.xpath("//*[contains(text(),'" + node + "')]"));
WebElement parent = system.findElement(By.xpath(".."));
String parentId = parent.getAttribute("id");
WebElement flecha = driver.findElement(By.xpath("//*[@id=\"" + parentId + "\"]/i"));
// WebElement arrow = parent.findElement(By.className("jstree-icon"));
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
js.executeScript("arguments[0].scrollIntoView(true);", arrow);
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
wait.until(ExpectedConditions.visibilityOf(flecha));
wait.until(ExpectedConditions.elementToBeClickable(flecha)).click();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Таким образом, в основном я определяю узел по имени, вызываю динамическое изменение элементов в дереве, затем выбираю стрелку и щелкаю по ней.Дело в том, что иногда код работает, иногда нет, и я не могу понять, почему.Я проверяю, что страница полностью загружена, прежде чем пытаться запустить ее, и когда я запускаю сценарий, шаг всегда зеленый, хотя узел не открыт. Также я хотел бы сообщить, что этот код всегда запускается после открытия корневого узла., который работает правильно.На всякий случай
Надеюсь, кто-нибудь может мне помочь.Заранее спасибо