appium / python-client

Python language bindings for Appium
Apache License 2.0
1.69k stars 565 forks source link

Bulk Execution is throwing Appium WebDriveexception and StaleElementReferenceException #612

Open soma-githubcloud opened 3 years ago

soma-githubcloud commented 3 years ago

The problem

(1)WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Could not proxy command to the remote server. Original error: socket hang up (2)StaleElementReferenceException: Message: androidx.test.uiautomator.StaleObjectException (3)Test execution stopped due to a fatal error.

Environment

Appium version : Appium 1.21.0 Desktop OS/version used to run Appium: Node version : v14.3.0 Npm Version : 6.14.5 Mobile platform/version under test: Android 10 and 11 (Models - OPPO F7, MOTTO G6, SAMSUNG M31 , Goggle Pixel) Real device or emulator/simulator: Real Devices java version "1.8.0_291" Java(TM) SE Runtime Environment (build 1.8.0_291-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode) robotframework-appiumlibrary : 1.5.0.6 Appium-UIAutomation : 0.1.0 Appium-Python-Client : 1.0.2 robotframework : 3.2.2 robotframework-seleniumlibrary : 4.3.0 webdrivermanager : 0.8.0

Details

(1) product Overview : Telecom application which have functionality to work with SMS,CALLS and CONTACTS for business enterprises solution . (2) Test running challenges : (i)Product point of view we are using Robot framework using RIDE as IDE tool for Automating our test suite using Selenium and Appium Library. (ii)While running more than 50+ scripts appium server stops the response and throw bad server error ,which leads to failures of rest scripts in the suite (iii)Changing from default to any other port number also not worked out much (e.g; default from 4723 to 4725) (iv)Also, we have some scenario where we have to do cross platform testing with (Web+Mobile). (v)We are not only checking the cases within the application as we are doing touch base on Mobile Native application as well like - dealing with network connections to ON or off the wifi ,Data , etc (vi) we are getting element not found several times where we can see the element is present in the screen, we have tried with all sync options and looks like it is the response from Appium server which Is causing the problem

Appium Logs -> We will provide

soma-githubcloud commented 3 years ago

Logs -> console Robot Pass and Fail Output Logs.txt Device1_SM_logcat.txt Device2_Pixel_logcat.txt Webdriver Exception Appium Logs.txt

KazuCocoa commented 3 years ago

(vi) we are getting element not found several times where we can see the element is present in the screen, we have tried with all sync options and looks like it is the response from Appium server which Is causing the problem

What about the result of page source in this case? Appium depends on how accessibility features by Android OS behaves in appium-uiautomator2-driver. If the accessibility feature was not able to find elements, Appium cannot interact with them, basically.

Appium 1.22 will have appium:useNativeCachingStrategy capability, which potentially helps stale element error in some cases. You can try the capability out as appium@beta