I need to use --session-override
flag as I have more than 100 tests otherwise I had port unavailable issue. After adding this flag I’m getting this error:
[debug] [35m[W3C] [39m Matched W3C error code 'no such element' to NoSuchElementError
[debug] [35m[W3C (5e3fa756)] [39m Encountered internal error running command: NoSuchElementError: An element could not be located on the page using the given search parameters.
[debug] [35m[W3C (5e3fa756)] [39m at AndroidUiautomator2Driver.findElOrEls (/Users/username/.nvm/versions/node/v12.16.3/lib/node_modules/appium/node_modules/appium-android-driver/lib/commands/find.js:75:11)
[debug] [35m[W3C (5e3fa756)] [39m at process._tickCallback (internal/process/next_tick.js:68:7)
[35m[HTTP] [39m [37m<-- POST /wd/hub/session/5e3fa756-3a69-4268-89a8-bae2c39d92df/element [39m [33m404 [39m [90m10509 ms - 492 [39m
[35m[HTTP] [39m [90m [39m
[35m[HTTP] [39m [37m--> [39m [37mGET [39m [37m/wd/hub/session/318235ed-3946-47ea-830d-4fa37403fd94/screenshot [39m
[35m[HTTP] [39m [90m{} [39m
[debug] [35m[W3C (318235ed)] [39m Encountered internal error running command: NoSuchDriverError: A session is either terminated or not started
[debug] [35m[W3C (318235ed)] [39m at asyncHandler (/Users/username/.nvm/versions/node/v12.16.3/lib/node_modules/appium/node_modules/appium-base-driver/lib/protocol/protocol.js:243:15)
[debug] [35m[W3C (318235ed)] [39m at app.(anonymous function) (/Users/username/.nvm/versions/node/v12.16.3/lib/node_modules/appium/node_modules/appium-base-driver/lib/protocol/protocol.js:436:15)
[debug] [35m[W3C (318235ed)] [39m at Layer.handle [as handle_request] (/Users/username/.nvm/versions/node/v12.16.3/lib/node_modules/appium/node_modules/express/lib/router/layer.js:95:5)
[debug] [35m[W3C (318235ed)] [39m at next (/Users/username/.nvm/versions/node/v12.16.3/lib/node_modules/appium/node_modules/express/lib/router/route.js:137:13)
[debug] [35m[W3C (318235ed)] [39m at Route.dispatch (/Users/username/.nvm/versions/node/v12.16.3/lib/node_modules/appium/node_modules/express/lib/router/route.js:112:3)
[debug] [35m[W3C (318235ed)] [39m at Layer.handle [as handle_request] (/Users/username/.nvm/versions/node/v12.16.3/lib/node_modules/appium/node_modules/express/lib/router/layer.js:95:5)
[debug] [35m[W3C (318235ed)] [39m at /Users/username/.nvm/versions/node/v12.16.3/lib/node_modules/appium/node_modules/express/lib/router/index.js:281:22
[debug] [35m[W3C (318235ed)] [39m at param (/Users/username/.nvm/versions/node/v12.16.3/lib/node_modules/appium/node_modules/express/lib/router/index.js:354:14)
[debug] [35m[W3C (318235ed)] [39m at param (/Users/username/.nvm/versions/node/v12.16.3/lib/node_modules/appium/node_modules/express/lib/router/index.js:365:14)
[debug] [35m[W3C (318235ed)] [39m at Function.process_params (/Users/username/.nvm/versions/node/v12.16.3/lib/node_modules/appium/node_modules/express/lib/router/index.js:410:3)
[debug] [35m[W3C (318235ed)] [39m at next (/Users/username/.nvm/versions/node/v12.16.3/lib/node_modules/appium/node_modules/express/lib/router/index.js:275:10)
[debug] [35m[W3C (318235ed)] [39m at logger (/Users/username/.nvm/versions/node/v12.16.3/lib/node_modules/appium/node_modules/morgan/index.js:144:5)
[debug] [35m[W3C (318235ed)] [39m at Layer.handle [as handle_request] (/Users/username/.nvm/versions/node/v12.16.3/lib/node_modules/appium/node_modules/express/lib/router/layer.js:95:5)
[debug] [35m[W3C (318235ed)] [39m at trim_prefix (/Users/username/.nvm/versions/node/v12.16.3/lib/node_modules/appium/node_modules/express/lib/router/index.js:317:13)
[debug] [35m[W3C (318235ed)] [39m at /Users/username/.nvm/versions/node/v12.16.3/lib/node_modules/appium/node_modules/express/lib/router/index.js:284:7
[debug] [35m[W3C (318235ed)] [39m at Function.process_params (/Users/username/.nvm/versions/node/v12.16.3/lib/node_modules/appium/node_modules/express/lib/router/index.js:335:12)
[debug] [35m[W3C (318235ed)] [39m Destroying socket connection
[35m[HTTP] [39m [37m<-- GET /wd/hub/session/318235ed-3946-47ea-830d-4fa37403fd94/screenshot [39m [33m404 [39m [90m17 ms - 2521 [39m
[35m[HTTP] [39m [90m [39m
[35m[HTTP] [39m [37m--> [39m [37mPOST [39m [37m/wd/hub/session/5e3fa756-3a69-4268-89a8-bae2c39d92df/appium/device/remove_app [39m
Here is my code which creates HTML report along with screenshot which is in my conftest.py:
@pytest.mark.hookwrapper
def pytest_runtest_makereport(item):
pytest_html = item.config.pluginmanager.getplugin('html')
outcome = yield
report = outcome.get_result()
extra = getattr(report, 'extra', [])
if report.when == 'call' or report.when == 'setup':
xfail = hasattr(report, 'wasxfail')
if (report.skipped and xfail) or (report.failed and not xfail):
screenshot = driver.get_screenshot_as_base64()
extra.append(pytest_html.extras.image(screenshot, ''))
report.extra = extra
Just to verify, I removed the --session-override
flag and ran my test and it was able to take screenshot without any internal error as above. How do I fix the above error with flag?