class MyApp:
def __init__(self,device_name: str = DEVICE_NAME, environment: str = DEFAULT_ENVIRONMENT) -> None:
environments = {"Staging": ".staging", "Production":"", "Dev":".dev"}
self.envPackageSuffix = environments.get(environment,environments[DEFAULT_ENVIRONMENT])
desiredCapabilities = {}
desiredCapabilities["appium:deviceName"] = device_name
desiredCapabilities["appium:automationName"] = AUTOMATION_NAME
desiredCapabilities["appium:platformName"] = PLATFORM_NAME
desiredCapabilities["appium:platformVersion"] = ANDROID_VERSION
desiredCapabilities["appium:appPackage"] = f'{APP_PACKAGE}{self.envPackageSuffix}' #APP_PACKAGE
desiredCapabilities["appium:appActivity"] = APP_ACTIVITY
desiredCapabilities["appium:instrumentApp"] = True
desiredCapabilities["appium:ensureWebviewsHavePages"] = True
desiredCapabilities["appium:nativeWebScreenshot"] = True
desiredCapabilities["appium:newCommandTimeout"] = NEW_COMMAND_TIMEOUT
desiredCapabilities["appium:connectHardwareKeyboard"] = True
desiredCapabilities["appium:noReset"] = True
options = UiAutomator2Options()
options.load_capabilities(desiredCapabilities)
# starting session based on set capabilities
self.driver = webdriver.Remote(SERVER_URL, options=options)
self.driver.start_activity(desiredCapabilities["appium:appPackage"],desiredCapabilities["appium:instrumentApp"])
I am getting AttributeError: 'WebDriver' object has no attribute 'start_activity'
But according to the docs this is supported.
Please help.
@mykola-mokhnach I tried:
self.driver.startActivity(desiredCapabilities["appium:appPackage"],desiredCapabilities["appium:instrumentApp"])
But i am getting AttributeError: 'WebDriver' object has no attribute 'startActivity'
My UiAutomator2 driver version is 2.25.1
Any update on this? I am also getting same error
Traceback (most recent call last):
File “/home/wireless/Documents/Latte/src/1.py”, line 106, in
print(test_devices.devices[‘phone1’][‘dev’].generic(app_package=_app_package, app_activity=_app_activity, sequence_lst=_sequence_lst))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/wireless/Documents/Latte/src/latte/devices/appium/init.py”, line 848, in generic
status, items = self._generic_sequence(_app_package, _app_activity, _sequence_lst,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/wireless/Documents/Latte/src/latte/devices/appium/init.py”, line 860, in _generic_sequence
status, items = self._run_sequence(_sequence, _app_package, _app_activity,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/wireless/Documents/Latte/src/latte/devices/appium/init.py”, line 889, in _run_sequence
self._connect_webdriver(secure_activity=secure_activity, launch_activity=launch_activity)
File “/home/wireless/Documents/Latte/src/latte/devices/appium/init.py”, line 1024, in _connect_webdriver
self._driver.startActivity(app_package, app_activity)
^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: ‘WebDriver’ object has no attribute ‘startActivity’. Did you mean: ‘wait_activity’?
^CException ignored in: <module ‘threading’ from ‘/home/wireless/miniconda/envs/Latte/lib/python3.11/threading.py’>
Traceback (most recent call last):
File “/home/wireless/miniconda/envs/Latte/lib/python3.11/threading.py”, line 1583, in _shutdown
wreed
6
Are you moving from Python Client 2 to 3? If so this will help:
I am new to appium and not sure how to use this mobile:startActivity.
My previous code was with python was like below
if secure_activity:
if secure_activity:
self._driver.start_activity(
app_package,
app_activity,
app_wait_activity=secure_activity
)
else:
self._driver.start_activity(app_package, app_activity)
logger.debug("Appium Server Re-connection Time: %s", time.time()-start_time)
wreed
8
I’m always a big fan of looking at the tests in the source code to see how some code snippet is used. Here are the activities_tests.py: