For context, I have setup a Selenium Grid Hub on the same Ubuntu machine. I also have 2 nodes (1 win and one macOS) - The windows node has 2 Android devices connected
On the same Ubuntu machine, I am trying to set the .apk path to the following: /media/daniel/BrokenEyes/builds/***.***.***.apk
However if I run the following command:
pytest path/to/test_folder --apk_path '/media/daniel/BrokenEyes/builds/***.***.***.apk'
the --apk_path is a custom argument I have made
def pytest_addoption(parser): # If you change these, change the ones in Rabbit_Sender too
parser.addoption("--apk_path", action="store", default=None,
help="Path to the APK file for Android Devices")
@pytest.fixture(scope="session")
def apk_path(request):
return request.config.getoption("--apk_path")
@pytest.fixture(scope="function")
def mobile_driver(request, device_info, device_orientation, apk_path, ipa_path, version_no, device_name_local):
test_name = request.node.name
device_platform, device_name, device_version, device_mobile_driver = device_info
orientation = device_orientation
options = AppiumOptions()
caps = {
'platformName': device_platform,
#'appium:deviceName': device_name,
'appium:app': apk_path,
'appPackage': 'com.***.***', # Todo Confirm this is the same for iOS
'appActivity': ***.SplashActivity',
'appium:platformVersion': device_version,
'appium:automationName': device_mobile_driver,
'appium:ensureWebviewsHavePages': True,
'appium:nativeWebScreenshot': True,
'appium:newCommandTimeout': 3600,
'appium:connectHardwareKeyboard': True,
'appium:fullReset': True
}
if device_name:
caps['appium:deviceName'] = device_name
options.load_capabilities(caps)
url = 'http://ipaddress:4444/wd/hub'
mobile_driver = webdriver.Remote(command_executor=url, options=options)
mobile_driver.orientation = orientation
# Yield the mobile_driver to the test
yield mobile_driver
I get the error:
`The application at ‘/media/daniel/BrokenEyes/builds/***.***.***.apk’ does not exist or is not accessible
I get this error regardless of where the .apk file is stored on the Ubuntu machine, I have tried:
- Placing the .apk file in the Home folder
- Placing the .apk file in the working directory where the path/to/test_folder is running
I don’t think its an issue with either the Selenium Grid hub or node, as I can run the pytest path/to/test_folder --apk_path 'path/to/***.***.***.apk'
on a separate Windows 10 machine (Changing the path to where the APK is stored on the Windows machine and both of the android devices on the Windows node start running the tests
I’m confident its the way I’ve set the file path on the Ubuntu machine, I don’t think it is permissions as it cannot run it anywhere I put the apk file.
Does anyone have any ideas what is going on here?