Selenium Java-如何从不同的类调用一个类

时间:2019-12-05 17:43:16

标签: java selenium sikuli-script

我是Selenium的新手,我需要获得一切的帮助。我将尽力提供详细信息。我需要在SECOND类的FIRST类(imgBtn01)中调用对象imgBtn02ImagesRepo。我想将其分开的原因是,我希望所有人都存储来自不同类的所有图像对象。

Selenium + Sikuli> Java> Maven项目

来自不同套餐的头等舱

public class ImagesRepo {

    public void imageRepoApp() {  

    //Images assigning object
     Screen screen = new Screen();
     Pattern imgBtn01 = new Pattern("/Images/Btn_ButtonName01.png");
     Pattern imgBtn02 = new Pattern("/Images/Btn_ButtonName02.png");
}

第二类,来自不同的软件包:

public class testBed {


    public static void callRepoImages() throws FindFailed {
        ReporImages();
    }


    @Test       
    public static void ReporImages() {
        Screen screen = new Screen();
        screen.click(imgBtn01); //the imgBtn01 has a redline
        screen.click(imgBtn02); //the imgBtn02 has a redline
        return;
    }
}

1 个答案:

答案 0 :(得分:2)

这似乎是有关如何在Java类型问题中进行编码的

一种方法是为第一个类创建公共变量,然后从第二个类中获取这些公共变量。

将第一类更改为类似的内容

public class ImagesRepo {

    public Pattern imgBtn01;
    public Pattern imgBtn02;

public void imageRepoApp() {  

//Images assigning object
 Screen screen = new Screen();
 imgBtn01 = new Pattern("/Images/Btn_ButtonName01.png");
 imgBtn02 = new Pattern("/Images/Btn_ButtonName02.png");
}

然后您可以在Second class中以以下方式获取这些公共变量:

public class testBed{


    public static void callRepoImages() throws FindFailed {
        ReporImages();
    }


@Test       
public static void ReporImages() {
    ImagesRepo imgrepo = new ImagesRepo();
    imgrepo.imageRepoApp();   //So that pattern assignment is done.
    Screen screen = new Screen();
    screen.click(imgrepo.imgBtn01); //the imgBtn01 has a redline
    screen.click(imgrepo.imgBtn02); //the imgBtn02 has a redline
    return;

}
}

此外,在testBed类中为ImageRepo类适当添加导入

未经测试的代码。

有更好的方法来执行此操作,但这似乎是对代码进行最小更改的方法。