我是Selenium的新手,我需要获得一切的帮助。我将尽力提供详细信息。我需要在SECOND类的FIRST类(imgBtn01
)中调用对象imgBtn02
或ImagesRepo
。我想将其分开的原因是,我希望所有人都存储来自不同类的所有图像对象。
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;
}
}
答案 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类适当添加导入
未经测试的代码。
有更好的方法来执行此操作,但这似乎是对代码进行最小更改的方法。