Selenium Java - 如何从不同的 class 调用 class
Selenium Java - How to call a class from different class
我是 Selenium 的新手,我需要任何可以得到的帮助。我会尽量提供详细信息。我需要从第二个 Class 调用第一个 Class (ImagesRepo
) 中的对象 imgBtn01
或 imgBtn02
。我想把它分开的原因,我希望所有的图像对象都来自不同的class。
Selenium + Sikuli > Java > Maven 项目
第一个 Class 来自不同的包
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");
}
第二个 class,来自不同的包:
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 类型的问题中编码。
一种方法是为第一个 class 创建 public 变量,然后从第二个 class.
获取这些变量
将第一个 class 更改为类似的东西;
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 变量作为;
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;
}
}
此外,在 class testBed
中适当地添加 class ImagesRepo 的导入
代码未经测试。
有更好的方法来做到这一点,但这似乎是对代码进行最少更改的方法。
我是 Selenium 的新手,我需要任何可以得到的帮助。我会尽量提供详细信息。我需要从第二个 Class 调用第一个 Class (ImagesRepo
) 中的对象 imgBtn01
或 imgBtn02
。我想把它分开的原因,我希望所有的图像对象都来自不同的class。
Selenium + Sikuli > Java > Maven 项目
第一个 Class 来自不同的包
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");
}
第二个 class,来自不同的包:
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 类型的问题中编码。
一种方法是为第一个 class 创建 public 变量,然后从第二个 class.
获取这些变量将第一个 class 更改为类似的东西;
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 变量作为;
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;
}
}
此外,在 class testBed
中适当地添加 class ImagesRepo 的导入代码未经测试。
有更好的方法来做到这一点,但这似乎是对代码进行最少更改的方法。