我正在尝试使用节点名称自动执行一些测试以打开Jstree节点 我想使其单击节点左侧的箭头,而不是双击节点本身。 这是代码
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();
}
}
因此,基本上我按名称定位Node,使树上的元素动态变化,然后选择箭头,然后单击它。 问题是,有时代码有效,有时却无效,我无法弄清原因。 在尝试运行此页面之前,我确保页面已满载,并且在运行场景时,此步骤始终为绿色,但未打开节点 我也想让您知道,此代码始终在打开根节点后运行,直到正常工作为止。以防万一
希望有人可以帮助我。 预先感谢