这段代码工作正常。但问题是它从属性文件加载所有值并单击列表中的第1个值。如果我想从列表中单击第5个值,我该怎么做。
Properties properties = new Properties();
InputStream input = null;
try {
input = new FileInputStream("C:/FilterSection/kpi.properties");
// load a properties file
properties.load(input);
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
int total = Integer.parseInt(properties.getProperty("total_ids"));
for(int i=1 ; i<= total ; i++){
String identifier = properties.getProperty("id_"+i);
System.out.print(identifier);
WebElement element = driver.findElement(By.id(identifier));
actions.moveToElement(element).click().perform();
}
但是它从属性文件中做了什么意味着
total_ids=5
id_1=ext-pr-backlog-age
id_2=ext-timetoassign-prs
id_3=ext-timetodeliver-prs
id_4=ext-timetoresolve-prs
id_5=ext-new-prs
正在加载和打印所有ID,如下所示
ext-pr-backlog-ageext-timetoassign-prsext-timetodeliver-prsext-timetoresolve-prsext-new-prs
此行System.out.print(identifier);
当我使用这段代码时
WebElement element = driver.findElement(By.id(identifier));
actions.moveToElement(element).click().perform();
它只会点击第一个kpi。如何从列表中执行任何一个KPI,而不仅仅是第一个KPI。
此KPI id_1 = ext-pr-backlog-age它在FE中单击。但如果我想要第5个意味着怎么做..请任何人帮助我。
答案 0 :(得分:0)
使用条件来解决此问题。下面的代码只是一个例子。
for(int i=1 ; i<= total ; i++){
String identifier = properties.getProperty("id_"+i);
System.out.print(identifier);
//You could use an if condition to do it
if(i=5){
WebElement element = driver.findElement(By.id(identifier));
actions.moveToElement(element).click().perform();
}
}