0

I am a beginner in automation testing. I am trying to write common test project for my android and ios app. Both the apps on ios and android have almost same UI and flow. I want to know how can I instantiate Appium driver for based on the platform. As of now, I am thinking to have a boolean variable isAndroid which I would have to manually change in the code before running the tests.Based on isAndroid I instantiate AppiumDriver to AndroidDriver or IOSDriver and elements will be located as per @AndroidFindby or @IOSFindBy When I start Appium from the terminal, I mention the parameter platformName, is there a way to fetch that information in my code so that I do not have to manually change isAndroid variable and exactly same test code runs on both platforms.

Anurag Shukla
  • 379
  • 1
  • 3
  • 11

1 Answers1

0

Are you able to try one platform, catch the exception and then try the other?

try:
    driver = webdriver.Remote('http://localhost:4723/wd/hub', ios_caps)
    run_iOS_tests(driver)
except selenium.common.exceptions.WebDriverException:
    driver = webdriver.Remote('http://localhost:4723/wd/hub', android_caps)
    run_android_tests(driver)

Otherwise you'll need to use some external method to see what devices are connected (android, ios).

import random
  • 3,054
  • 1
  • 17
  • 22