You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'd like to use the @AndroidFindBy annotation for finding elements by view tag on Android, I am specifying a test ID through this attribute as we cannot use resource ids for targeting views when using React Native.
It does not seem like @AndroidFindBy currently supports this. I see MobileBy.ByAndroidViewTag, but I believe this cannot be used with the page object model to initially locate elements.
Is the only workaround an xpath selector (which I believe requires knowing the tag name in advance in addition to the view tag)?
e.g. driver.findElementByXPath("//android.widget.TextView[@view-tag='some-tag']"
Thanks, It does work, but I am confused by the naming. Your solution seems more sensible, the existing tagName annotation does not seem to correctly describe this locator strategy.
In React Native apps where resource-id isn’t available, we often rely on view-tag (mapped from testID). While MobileBy.AndroidViewTag("some-tag") works, it’s not usable with @AndroidFindBy, limiting Page Object Model usage.
Currently, the workaround is using XPath like: @AndroidFindBy(xpath = "//android.widget.TextView[@view-tag='some-tag']") But this requires knowing the class name, making it fragile.
Support for something like @AndroidFindBy(viewTag = "some-tag") would be a clean solution.
Happy to contribute if this is feasible!
Activity
iChip commentedon Nov 20, 2019
Tagging @dpgraham since he's my guy on the inside + appears to have some context
jayandran-Sampath commentedon Nov 28, 2019
@iChip : As per current implementation, AndroidFindBy(tagName="some-tag") itself will work. Just give a try and let us know.
iChip commentedon Dec 12, 2019
Thanks, It does work, but I am confused by the naming. Your solution seems more sensible, the existing tagName annotation does not seem to correctly describe this locator strategy.
I added some comments on your closed PR:
#1271 (comment)
vaishaliidnani commentedon Dec 18, 2019
is this project run in Android because i m not able to run this please give the link
VivekShahare04 commentedon Jul 10, 2024
@iChip @dpgraham try to Create a custom annotation:
just like
ranjeetksingh55 commentedon Jun 19, 2025
Hi @iChip,
In React Native apps where resource-id isn’t available, we often rely on view-tag (mapped from testID). While MobileBy.AndroidViewTag("some-tag") works, it’s not usable with @AndroidFindBy, limiting Page Object Model usage.
Currently, the workaround is using XPath like:
@AndroidFindBy(xpath = "//android.widget.TextView[@view-tag='some-tag']")But this requires knowing the class name, making it fragile.Support for something like @AndroidFindBy(viewTag = "some-tag") would be a clean solution.
Happy to contribute if this is feasible!
Thanks 🙌