StaleElement reference error when we switch to new window in iOS web

45 views Asked by At

When a new window is opened, we can get the title and URL of the window but elements are not interactable and throwing the below error.

an unknown server-side error occurred while processing the command. original error: remote debugger error with code 'undefined': staleelementreferenceerror: element does not exist in cache

Even the getpagesource() method also throwing the same error.

we have tried with:

  1. driver.navigate.refresh() method to interact with elements

  2. tried of finding the element again with wait time

We are expecting to get the pagesource and click on particular link in a new window

Below are the details:

  • Selenium - 4.11.0
  • Appium Java-Client - 8.5.1
  • QAF - 4.0.0-RC2
  • OpenJDK 17

perfecto.properties :

driver.name=perfectoDriver
remote.server=https://<NAME>.perfectomobile.com/nexperience/perfectomobile/wd/hub/fast
remote.port=80
perfecto.additional.capabilities={"perfecto:options":{"securityToken":<personal token>,"openDeviceTimeout":5.0,"scriptName":"QAFTest","automationName":"XCUITest","deviceName":"00008030-001111421EEB402E","browserName":"Safari"},"driverClass":"io.appium.java_client.ios.IOSDriver","safariAllowPopups":true,"autoAcceptAlerts":true}

Logs:

org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Remote debugger error with code 'undefined': StaleElementReferenceError: Element does not exist in cache
Build info: version: '4.11.0', revision: '040bc5406b'
System info: os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.8'
Driver info: com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver
Command: [c0f3ca9b-3eb8-4098-bafe-ee10597613fc, executeScript {args=[], script=return window.devicePixelRatio;}]
Capabilities {appium:accessToken: eyJhbGciOiJSUzI1NiIsInR5cCI..., appium:assert_javascript_enabled: true, appium:audioStreamInfo: {"audioStreamingServerUrl":..., appium:autoAcceptAlerts: true, appium:automationName: XCUITest, appium:databaseEnabled: false, appium:deviceName: 00008030-001111421EEB402E, appium:deviceSessionId: c0f3ca9b-3eb8-4098-bafe-ee1..., appium:driverClass: io.appium.java_client.ios.I..., appium:entityType: remote_web_driver, appium:executionId: c0f3ca9b-3eb8-4098-bafe-ee1..., appium:host: abc.perfectomobile.com, appium:internalPureAppiumFlow: true, appium:javascriptEnabled: true, appium:liveStreamEnabled: false, appium:locationContextEnabled: false, appium:mcmExecutionId: [email protected]...., appium:networkConnectionEnabled: false, appium:openDeviceTimeout: 5, appium:password: , appium:platformVersion: 15.0, appium:reportPdfUrl: https://abc.app.perfect..., appium:safariAllowPopups: true, appium:scriptName: QAF Test, appium:securityToken: , appium:serverConnector: , appium:simpleIsVisibleCheck: true, appium:stopUrl: https://abc.perfectomob..., appium:streamInfo: {"url":"wss://ams-01.perfec..., appium:takesScreenshot: true, appium:testGridReportUrl: https://abc.app.perfect..., appium:testRunWithPureAppiumFlow: true, appium:udid: 00008030-001111421EEB402E, appium:useNativeCachingStrategy: false, appium:webStorageEnabled: false, appium:xcuitestFindOptimizations: true, browserName: Safari, platformName: IOS}
Session ID: c0f3ca9b-3eb8-4098-bafe-ee10597613fc
        at .When the user selects to create new illustration(scenarios/E2E/e2e.feature:11)
        at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:200)
        at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:133)
        at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:52)
        at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:191)
        at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:250)
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:518)
        at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.executeSuper(QAFExtendedWebDriver.java:237)
        at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.executeWithoutLog(QAFExtendedWebDriver.java:254)
        at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.executeWitoutLog(QAFExtendedWebDriver.java:299)
        at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.execute(QAFExtendedWebDriver.java:277)
        at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.execute(QAFExtendedWebDriver.java:231)
        at org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:463)
        at com.assertthat.selenium_shutterbug.utils.web.Browser.executeJsScript(Browser.java:872)
        at com.assertthat.selenium_shutterbug.utils.web.Browser.(Browser.java:81)
        at com.assertthat.selenium_shutterbug.core.Shutterbug.shootPage(Shutterbug.java:139)
        at com.assertthat.selenium_shutterbug.core.Shutterbug.shootPage(Shutterbug.java:83)
        at com.assertthat.selenium_shutterbug.core.Shutterbug.shootPage(Shutterbug.java:69)
        at jp.co.abc.utils.WebUtil.directlyTakeFullPageScreenshot(WebUtil.java:179)
        at jp.co.abc.listeners.TestStepListener.onFailure(TestStepListener.java:44)
        at com.qmetry.qaf.automation.step.BaseTestStep.onFailure(BaseTestStep.java:170)
        at com.qmetry.qaf.automation.step.BaseTestStep.execute(BaseTestStep.java:157)
        at com.qmetry.qaf.automation.step.StringTestStep.execute(StringTestStep.java:128)
        at com.qmetry.qaf.automation.step.client.Scenario.execute(Scenario.java:174)
        at com.qmetry.qaf.automation.step.client.DataDrivenScenario.scenario(DataDrivenScenario.java:66)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)
0

There are 0 answers