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

Selenium Java-如何从不同的类调用类,java,selenium,sikuli-script,Java,Selenium,Sikuli Script,我是硒的新手,我需要任何我能得到的帮助。我会尽量提供详细的信息。我需要从第二个类调用第一个类(ImagesRepo)中的对象imgBtn01或imgBtn02。我之所以要将其分离,是因为我想将所有的图像对象都存储在不同的类中 Selenium+Sikuli>Java>Maven项目 不同包装的头等舱 public class ImagesRepo { public void imageRepoApp() { //Images assigning object S

我是硒的新手,我需要任何我能得到的帮助。我会尽量提供详细的信息。我需要从第二个类调用第一个类(
ImagesRepo
)中的对象
imgBtn01
imgBtn02
。我之所以要将其分离,是因为我想将所有的图像对象都存储在不同的类中

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

这看起来更像是一个如何在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");
}
然后可以在第二类中获得这些公共变量,如下所示:

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;

}
}
另外,在类测试床中适当地添加类ImagesRepo的导入

代码未经测试


有更好的方法可以做到这一点,但这似乎是对代码进行最小更改的方法。

这看起来更像是一个如何用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");
}
然后可以在第二类中获得这些公共变量,如下所示:

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;

}
}
另外,在类测试床中适当地添加类ImagesRepo的导入

代码未经测试


有更好的方法可以做到这一点,但这似乎是对代码进行最小更改的方法。

伙计,你真的很擅长这一点。我试过了,效果很好。谢谢你!我以后可能还需要你的帮助祝你有美好的一天!很高兴我能帮忙。如果此答案对您有效,请单击灰色勾号并将其标记为答案。还有,别忘了投票!我确实点击了检查图标。还有,我投了票,但是因为我的帖子不多,所以我没有投。老兄,你真的很在行。我试过了,效果很好。谢谢你!我以后可能还需要你的帮助祝你有美好的一天!很高兴我能帮忙。如果此答案对您有效,请单击灰色勾号并将其标记为答案。还有,别忘了投票!我确实点击了检查图标。还有,我投了票,但因为我的帖子不多,所以我的投票结果似乎不正确。