我在点击组件中当天的元素时遇到问题。 Selenium通过xpath查找元素,发送click命令,但实际上没有单击该元素。代码和图像以便进一步理解。
值得一提的是,即使使用JavaScriptExecutor,仍然无法点击。
public static void selecionarDataCalendario(By by,WebDriver driver,WebDriverWait wait, WebElement webElement) throws Throwable {
Calendar dat = Calendar.getInstance();
dat.setTime(new Date());
SimpleDateFormat formatterMes = new SimpleDateFormat("MM");
SimpleDateFormat formatterAno = new SimpleDateFormat("YYYY");
SimpleDateFormat formatterDia = new SimpleDateFormat("dd");
String mes = formatterMes.format(dat.getTime());
String ano = formatterAno.format(dat.getTime());
String dia = formatterDia.format(dat.getTime());
driver.findElement(by).click();
Thread.sleep(500);
driver.findElement(By.xpath("//td[text()='"+ dia +"']")).click();
Thread.sleep(500);
}
答案 0 :(得分:0)
我发现的解决方案是因为我通过文本搜索元素。迭代列表并单击所有找到的元素。
public static void selecionarDataCalendario(By by,WebDriver driver,WebDriverWait wait, WebElement webElement) throws Throwable {
Calendar dat = Calendar.getInstance();
dat.setTime(new Date());
SimpleDateFormat formatterMes = new SimpleDateFormat("MM");
SimpleDateFormat formatterAno = new SimpleDateFormat("YYYY");
SimpleDateFormat formatterDia = new SimpleDateFormat("dd");
String mes = formatterMes.format(dat.getTime());
String ano = formatterAno.format(dat.getTime());
String dia = formatterDia.format(dat.getTime());
driver.findElement(by).click();
Thread.sleep(500);
ArrayList<WebElement> elementos = (ArrayList<WebElement>) driver.findElements(By.xpath("//table[@id='SalvarForm:dataefeito']/tbody/tr/td[text()='"+ dia +"']"));
for (WebElement elemento: elementos) {
elemento.click();
}
Thread.sleep(500);
}