繁体   English   中英

类型中的方法不适用于参数 java

[英]the method in the type is not applicable for the arguments java

我在一个班级中有两种方法。 从一开始我就包含字符串和返回索引。 第二,我尝试使用这个索引来查找元素。 但是我在 Eclipse 中有错误“SettingsPage 类型中的方法 containsStatsName() 不适用于参数 java”我必须做什么才能正常工作??

设置页面.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++;
        }
    }   
}

主页类

 SettingsPage sp = new SettingsPage(driver);

    sp.gotoLeadStat();

    sp.containsStatsName("new");

    sp.editStatsName();

您可以嵌套方法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++;
    }
}   

你的问题在这里:

public void editStatsName(){
        int leadNewPos = containsStatsName();

您的containsStatsName方法采用 String 参数,没有定义该名称的方法不采用任何参数,因此编译器会告诉您存在问题。

您可以通过为其提供参数 statusName 来修改您的editStatsName方法:

public void editStatsName(String statusName){
        int leadNewPos = containsStatsName(statusName);

有了它,你给你的containsStatsName方法它需要的参数。

但是由于您的editStatsName方法真正需要的参数是索引而不是 statusName - 我会将containsStatsName方法从editStatsName 中抛出,因为您已经在 main 方法中调用了它:

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM