2015-07-30 3 views
0

Мой вопрос заключается в следующем: как найти имя модели устройства, причина в следующем. Я пишу Java-код для Appium и хотел бы создать определенные логические ворота, которые имеют дело с различными типами моделей, которые имеют тестовые примеры, подходящие для измерений каждого конкретного устройства.Как найти модель устройства iOS?

Я пробовал читать разные решения, некоторые из которых касались Android, возможно, они могли бы предложить некоторые полезные указатели. Однако это было не так. Список System.getProperties() (System.out). например, который, как я надеялся, может предоставить мне необходимое решение, также не был ответом. Хотя я и так ожидал.

Я бы использовал возможности.getPlatform(); Однако это недействительно, так как возможности по умолчанию равны нулю, и поэтому getPlatform() просто вернет мне имя, которое мне пришлось передать вручную. На данный момент, я подозреваю, что не может быть способа сделать это в Java (?) Я нашел код, который был сделан в JavaScript, но он предназначен для проверки типа телефона, подключенного к веб-сайту (ссылка: http://www.abeautifulsite.net/detecting-mobile-devices-with-javascript/)

Помощь очень ценится. Ниже мой метод @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

Я бы использовал параметры, которые передаются желаемым возможностям.

Но, как я понимаю, в вашем случае это не вариант, поэтому я предлагаю запустить команду instruments -s devices из кода и проанализировать его вывод, соответствующий конкретному UDID. Я знаю, что это «грязный» подход, но я не нашел лучших вариантов. Удачи!

+0

Благодарим за ответ, как бы я включил его в код, поскольку это похоже на строку командной строки. – SomeStudent

+0

Поскольку вы знаете ОС, вы можете использовать это решение ["java runtime.getruntime(), получая вывод от выполнения программы командной строки"] (http://stackoverflow.com/questions/5711084/java-runtime-getruntime-getting- output-from-executing-a-command-line-program) и настроить для вашего использования синтаксический анализ результирующего результата. –

Смежные вопросы