我的问题如下:如何找到设备型号名称,原因如下。我正在为Appium编写Java代码,并希望创建一个特定的逻辑门来处理不同的模型类型,这些模型类型具有适合每个特定设备维度的测试用例。
我尝试过阅读不同的解决方案,其中一些涉及Android,可能会提供一些有用的指示。但事实并非如此。 。System.getProperties()名单(的System.out);例如,我希望能为我提供所需的解决方案,也不是答案。虽然我已经预料到了这一点。
我会使用capabilities.getPlatform();但是,这是无效的,因为默认情况下的功能是null,因此getPlatform()只会返回我必须手动传递的名称。此时,我怀疑在Java中可能没有办法做到这一点(?)我找到了一个用JavaScript完成的代码,但它用于检查连接到网站的手机类型(链接:{ {3}})
非常感谢帮助。以下是我的@BeforeTest方法:
@BeforeTest
public void setUp() throws FileNotFoundException, IOException, IllegalMonitorStateException
{
//File app = new File("/Users/first.last/Library/Developer/Xcode/DerivedData/iPhone-aowtfpozolcnpigbxzxxxxkyiubq/Build/Products/Debug-iphonesimulator/TheWeather.app");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "iOS");
//8.4
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "8.4");
//Iphone 6-(storytelling)-igor
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Iphone 6-(storytelling)-name");
//capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
capabilities.setCapability("bundleID", "com.weather.TWC");
//70cb6f4fd5e313b16742c083ccbc1897d82b094d
capabilities.setCapability("udid", "70cb6f4fd5e313b16742c083ccbc1897d82b094d");
driver = new IOSDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);
driver = (IOSDriver) new Augmenter().augment(driver);
System.out.println(capabilities.getCapability(MobileCapabilityType.DEVICE_NAME));
logger.info("Environment: iOS 8.4 and iPhone 6 plus device");
}
答案 0 :(得分:0)
我会使用传递给所需功能的参数。
但正如我所理解的那样,这不是一个选项,所以我建议从代码中启动instruments -s devices
命令并解析与特定UDID匹配的输出。我知道这是一个“肮脏”的方法,但我没有遇到更好的选择。祝你好运!