Try to start the test locally, no headless mode.
Launching pytest with arguments
tests/test_burger_menu.py::test_open_burger_menu --no-header --no-summary -q
Emulator: Pixel 8 ( Android 16.0)
Start emulator : emulator -avd Pixel
Start Appium: appium --allow-insecure="*:chromedriver_autodownload"
confest.py
import pytest
from appium import webdriver
from appium.options.android import UiAutomator2Options
def pytest_addoption(parser):
parser.addoption("--appium-url", action="store", default="http://127.0.0.1:4723")
parser.addoption("--udid", action="store", default="emulator-5554")
parser.addoption(
"--base-url",
action="store",
default="https://www.example.com",
)
@pytest.fixture(scope="session")
def base_url(request) -> str:
return request.config.getoption("--base-url")
@pytest.fixture
def driver(request):
appium_url = request.config.getoption("--appium-url")
udid = request.config.getoption("--udid")
options = UiAutomator2Options()
options.platform_name = "Android"
options.automation_name = "UiAutomator2"
options.udid = udid
options.browser_name = "Chrome"
options.new_command_timeout = 120
options.set_capability("appium:uiautomator2ServerLaunchTimeout", 120000)
options.set_capability("appium:uiautomator2ServerInstallTimeout", 120000)
options.set_capability("appium:uiautomator2ServerStartupTimeout", 120000)
options.set_capability("appium:skipLogcatCapture", True)
options.set_capability("appium:clearSystemFiles", True)
options.set_capability("appium:ignoreHiddenApiPolicyError", True)
# Important for mobile Chrome: don't wait for full page load (reduces hangs/crashes)
options.set_capability("pageLoadStrategy", "none")
# Disable first-run/Welcome screen in Chrome
options.set_capability("appium:chromeOptions", {"args": ["--disable-fre", "--no-first-run"]})
drv = webdriver.Remote(appium_url, options=options)
try:
yield drv
finally:
drv.quit()
pages/home_page.py
import pytest
from appium import webdriver
from appium.options.android import UiAutomator2Options
def pytest_addoption(parser):
parser.addoption("--appium-url", action="store", default="http://127.0.0.1:4723")
parser.addoption("--udid", action="store", default="emulator-5554")
parser.addoption(
"--base-url",
action="store",
default="https://www.particleformen.com/?store_switch=en",
)
@pytest.fixture(scope="session")
def base_url(request) -> str:
return request.config.getoption("--base-url")
@pytest.fixture
def driver(request):
appium_url = request.config.getoption("--appium-url")
udid = request.config.getoption("--udid")
options = UiAutomator2Options()
options.platform_name = "Android"
options.automation_name = "UiAutomator2"
options.udid = udid
options.browser_name = "Chrome"
options.new_command_timeout = 120
options.set_capability("appium:uiautomator2ServerLaunchTimeout", 120000)
options.set_capability("appium:uiautomator2ServerInstallTimeout", 120000)
options.set_capability("appium:uiautomator2ServerStartupTimeout", 120000)
options.set_capability("appium:skipLogcatCapture", True)
options.set_capability("appium:clearSystemFiles", True)
options.set_capability("appium:ignoreHiddenApiPolicyError", True)
# Important for mobile Chrome: don't wait for full page load (reduces hangs/crashes)
options.set_capability("pageLoadStrategy", "none")
# Disable first-run/Welcome screen in Chrome
options.set_capability("appium:chromeOptions", {"args": ["--disable-fre", "--no-first-run"]})
drv = webdriver.Remote(appium_url, options=options)
try:
yield drv
finally:
drv.quit()
tests/test_burger_menu.py
import pytest
import allure
from pages.home_page import HomePage
@allure.epic("Mobile Web Tests")
@allure.feature("Home Page")
@pytest.mark.smoke
@allure.story("Burger menu functionality")
def test_open_burger_menu(driver, base_url):
with allure.step("Open home page"):
HomePage(driver).open(base_url).assert_loaded()
with allure.step("Open burger menu"):
HomePage(driver).open_menu()
with allure.step("Verify menu is opened"):
HomePage(driver).assert_menu_opened()
Emulator open Chrome ---> Load base.url ---> fails with
AssertionError: Burger is not open. class='burger'
Sébastien Guarnay
4553 silver badges10 bronze badges
asked Dec 23, 2025 at 7:09
Dmytro Podoprygora
131 silver badge5 bronze badges
default