appium / java-client

Java language binding for writing Appium Tests, conforms to W3C WebDriver Protocol
Apache License 2.0
1.21k stars 756 forks source link

[Bug] Suddenly unable to click elements that are considered clickable by WebDriverWait #2085

Open jgfmachado opened 9 months ago

jgfmachado commented 9 months ago

Description

I'm suddenly facing issues with elements that fail to be clicked, while WebDriverWait considers them to be clickable.

Trying to click those elements with the WebElement .click() method, returns a detail message that reads,

An unknown server-side error occurred while processing the command. Original error: unknown error: Element <div class="c-button__title">...</div> is not clickable at point (566, 483). Other element would receive the click: <div class="c-button--active" style="border-radius: 0.25rem;"></div>
  (Session info: chrome=69.0.3497.100)
  (Driver info: chromedriver=2.44.609538 (b655c5a60b0b544917107a59d4153d4bf78e1b90),platform=Windows NT 10.0.19045 x86_64)

with a cause that reads

org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: unknown error: Element <div class="c-button__title">...</div> is not clickable at point (566, 483). Other element would receive the click: <div class="c-button--active" style="border-radius: 0.25rem;"></div>
  (Session info: chrome=69.0.3497.100)
  (Driver info: chromedriver=2.44.609538 (b655c5a60b0b544917107a59d4153d4bf78e1b90),platform=Windows NT 10.0.19045 x86_64)
Build info: version: '4.16.1', revision: '9b4c83354e'
System info: os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.7'
Driver info: io.appium.java_client.android.AndroidDriver
Command: [a22d7629-65b6-4c7c-86b6-132436a6c1e9, clickElement {id=0.7700422711264372-27}]
Capabilities {appium:appActivity: <omitted>, appium:appPackage: <omitted>, appium:autoGrantPermissions: true, appium:automationName: UIAutomator2, appium:databaseEnabled: false, appium:desired: {appActivity: <omitted>, appPackage: <omitted>, autoGrantPermissions: true, automationName: UIAutomator2, newCommandTimeout: 3600, platformName: ANDROID, udid: emulator-5554, uiautomator2ServerInstallTimeout: 60000}, appium:deviceApiLevel: 28, appium:deviceManufacturer: Google, appium:deviceModel: AOSP on IA Emulator, appium:deviceName: emulator-5554, appium:deviceScreenDensity: 160, appium:deviceScreenSize: 1280x800, appium:deviceUDID: emulator-5554, appium:javascriptEnabled: true, appium:locationContextEnabled: false, appium:networkConnectionEnabled: true, appium:newCommandTimeout: 3600, appium:pixelRatio: 1, appium:platformVersion: 9, appium:statBarHeight: 24, appium:takesScreenshot: true, appium:udid: emulator-5554, appium:uiautomator2ServerInstallTimeout: 60000, appium:viewportRect: {height: 728, left: 0, top: 24, width: 1280}, appium:warnings: {}, appium:webStorageEnabled: false, platformName: ANDROID}
Element: [[AndroidDriver:  on ANDROID (a22d7629-65b6-4c7c-86b6-132436a6c1e9)] -> xpath: //div[@class='c-button__title' and text()='Apply All']]
Session ID: a22d7629-65b6-4c7c-86b6-132436a6c1e9

Note that it didn't throw the expected ElementNotInteractableException exception.

Trying to instead click them through the Actions .click(WebElement target) method , I get, Request failed with status code 501 with,

org.openqa.selenium.WebDriverException: Request failed with status code 501
Build info: version: '4.16.1', revision: '9b4c83354e'
System info: os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.7'
Driver info: io.appium.java_client.android.AndroidDriver
Command: [a22d7629-65b6-4c7c-86b6-132436a6c1e9, actions {actions=[org.openqa.selenium.interactions.Sequence@870a9f2]}]
Capabilities {appium:appActivity: com.eposnow.till.MainActivity, appium:appPackage: com.eposnow.till, appium:autoGrantPermissions: true, appium:automationName: UIAutomator2, appium:databaseEnabled: false, appium:desired: {appActivity: com.eposnow.till.MainActivity, appPackage: com.eposnow.till, autoGrantPermissions: true, automationName: UIAutomator2, newCommandTimeout: 3600, platformName: ANDROID, udid: emulator-5554, uiautomator2ServerInstallTimeout: 60000}, appium:deviceApiLevel: 28, appium:deviceManufacturer: Google, appium:deviceModel: AOSP on IA Emulator, appium:deviceName: emulator-5554, appium:deviceScreenDensity: 160, appium:deviceScreenSize: 1280x800, appium:deviceUDID: emulator-5554, appium:javascriptEnabled: true, appium:locationContextEnabled: false, appium:networkConnectionEnabled: true, appium:newCommandTimeout: 3600, appium:pixelRatio: 1, appium:platformVersion: 9, appium:statBarHeight: 24, appium:takesScreenshot: true, appium:udid: emulator-5554, appium:uiautomator2ServerInstallTimeout: 60000, appium:viewportRect: {height: 728, left: 0, top: 24, width: 1280}, appium:warnings: {}, appium:webStorageEnabled: false, platformName: ANDROID}
Session ID: a22d7629-65b6-4c7c-86b6-132436a6c1e9

If the same script is executed through ChromeDriver on Chrome Browser, I get the ElementNotInteractableException exception instead, and I am able to click it through the Actions class. That's why I suspected it was something with Appium.

Environment