我正在自动化所有移动前端(功能((IOS和Android(。我正在重构代码,并希望使其实用且干净,以便将来进行重构。 我做了什么:我创建了一个类来创建我的AndroidDriver,并创建了一个另一个类来创建我的IOSDriver。两者都返回驱动程序。 问题是,当我创建下一页时,我需要告诉它是IOS.driver((还是android.driver((才能执行findElements以及所有标题。 我该如何继续? 有没有办法创建另一个类来执行 IF/ELSE 并在将来的页面上调用此基本页面方法?
页面驱动程序 IOS(类驱动程序 IOS(:
public static IOSDriver<MobileElement> getDriver() {
if (driver == null) {
createDriver();
}
return driver;
}
页面驱动程序安卓(类驱动程序安卓(:
public static AndroidDriver<MobileElement> getDriver() {
if (driver == null) {
createDriver();
}
return driver;
}
指示测试是 IOS 还是驱动程序的参数:
//Or IOS or Android
public static String SO = "IOS";
JAVA> Selenium> Appium。
你知道我的问题吗?!?!!
我等待并提前感谢
在这种情况下,核心问题是,即使能够单独调用驱动程序,也需要在整个测试过程中携带相同的驱动程序。您的测试将失败,因为您肯定同时通过了即设备和操作系统的差异功能,因此这不起作用。
解决此问题的唯一方法是通过BDD框架执行此操作,您可以在其中为iOS和Android测试放置标签,这样您就可以将两者分开。我强烈建议CodeceptJS来解决您的问题。CodeceptJS内置了在单个存储库中支持iOS和Android测试的方法。