我在一个班级中有两个方法。从第一个我包含字符串和返回索引。在第二个我尝试使用此索引来查找元素。但我在eclipse中有错误“类型SettingsPage中的方法containsStatsName()不适用于参数java”我需要做什么才能正常工作?
SettingPage.class
public int containsStatsName(String statusName){
int statListPos =0;
int statsNumber = getStatusList.size();
for(int i=0;i<statsNumber;i++){
if(getStatusList.get(i).getText().toLowerCase().contains(statusName)){
statListPos = i+1;
}
}
return statListPos;
}
public void editStatsName(){
int leadNewPos = containsStatsName();
int buttonNumber = getButtonList.size();
int couterNew = 0;
for(int i=0;i<buttonNumber;i++){
if(couterNew == leadNewPos){
getButtonList.get(i).click();
break;
}else{
couterNew++;
}
}
}
MainPage.class
SettingsPage sp = new SettingsPage(driver);
sp.gotoLeadStat();
sp.containsStatsName("new");
sp.editStatsName();
答案 0 :(得分:0)
您可以将方法 containsStatsName 嵌套为第二种方法的参数...
sp.gotoLeadStat();
sp.editStatsName(sp.containsStatsName("new"));
并修改editStatsName方法。
public void editStatsName(int leadPosition){
int leadNewPos = leadPosition;
int buttonNumber = getButtonList.size();
int couterNew = 0;
for(int i=0;i<buttonNumber;i++){
if(couterNew == leadNewPos){
getButtonList.get(i).click();
break;
}else{
couterNew++;
}
}
答案 1 :(得分:0)
你的问题在于:
public void editStatsName(){
int leadNewPos = containsStatsName();
您的 containsStatsName 方法接受一个String参数,没有定义该名称的方法没有参数,因此编译器会告诉您存在问题。
您可以通过为其指定参数statusName来修改 editStatsName 方法:
public void editStatsName(String statusName){
int leadNewPos = containsStatsName(statusName);
通过它为 containsStatsName 方法提供所需的参数。
但是由于你的 editStatsName 方法真正需要的参数是索引而不是statusName - 我会抛出 containsStatsName 方法 editStatsName ,因为您已在主方法中调用它:
public void editStatsName(int leadNewPos){
int buttonNumber = getButtonList.size();
int couterNew = 0;
for(int i=0;i<buttonNumber;i++){
if(couterNew == leadNewPos){
getButtonList.get(i).click();
break;
}else{
couterNew++;
}
}
并在主方法中调用这两个方法:
int statListPos = sp.containsStatsName("new");
sp.editStatsName(statListPos);