# Dynamic Locator in iOS App

**URL:** <https://discuss.appium.io/t/dynamic-locator-in-ios-app/38450>\
**Category:** Support\
**Created:** [February 3, 2023, 3:39pm UTC](https://discuss.appium.io/t/dynamic-locator-in-ios-app/38450 "2023-02-03T15:39:42Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Elvin\_Danyarov](https://discuss.appium.io/user_avatar/discuss.appium.io/elvin_danyarov/32/10355_2.png) [@Elvin\_Danyarov](https://discuss.appium.io/u/Elvin_Danyarov)\
**Post date:** [February 3, 2023, 3:39pm UTC](https://discuss.appium.io/t/dynamic-locator-in-ios-app/38450/1 "2023-02-03T15:39:42Z")

</div>

Hello,

I am having hard time to locate element which is dynamic and changing everyday. Can you please help me to find stable version of the below selectors? I will put xPath, iOSClassChain and ios predicate string versions of same element/

**NOTE: “Lina Test Enrollment” and “331” are changing everyday. That is why need to be considered.!!!**

**-ios class chain:** \*\*/XCUIElementTypeButton[`label == "Lina Test Enrollment, Due in 331 days"`]

**-ios predicate string** : label == “Lina Test Enrollment, Due in 331 days” AND name == “Lina Test Enrollment, Due in 331 days” AND type == “XCUIElementTypeButton”

**xpath:** //XCUIElementTypeButton[@name=“Lina Test Enrollment, Due in 331 days”]

---

<div class="post-metadata">

**Author:** ![Aleksei](https://discuss.appium.io/user_avatar/discuss.appium.io/aleksei/32/6267_2.png) [@Aleksei](https://discuss.appium.io/u/Aleksei)\
**Post date:** [February 3, 2023, 4:19pm UTC](https://discuss.appium.io/t/dynamic-locator-in-ios-app/38450/2 "2023-02-03T16:19:49Z")

</div>

Write examples of text yesterday, today and tomorrow

---

<div class="post-metadata">

**Author:** ![Elvin\_Danyarov](https://discuss.appium.io/user_avatar/discuss.appium.io/elvin_danyarov/32/10355_2.png) [@Elvin\_Danyarov](https://discuss.appium.io/u/Elvin_Danyarov)\
**Post date:** [February 3, 2023, 4:23pm UTC](https://discuss.appium.io/t/dynamic-locator-in-ios-app/38450/3 "2023-02-03T16:23:57Z")

</div>

@Aleksei wasnt sure if that was request or not, but sharing different versions based on (I said **“Lina Test Enrollment”** is dynamic because there might be different names for it, not specifically that one, but number of days is decreasing by 1 each day and affects the locator as well as below):

**Yesterday** : **-ios class chain:** \*\*/XCUIElementTypeButton[`label == "Lina Test Enrollment, Due in 332 days"`]  
**Today** : **-ios class chain:** \*\*/XCUIElementTypeButton[`label == "Lina Test Enrollment, Due in 331 days"`]  
**Tomorrow** : **-ios class chain:** \*\*/XCUIElementTypeButton[`label == "Lina Test Enrollment, Due in 330 days"`]

---

<div class="post-metadata">

**Author:** ![Elvin\_Danyarov](https://discuss.appium.io/user_avatar/discuss.appium.io/elvin_danyarov/32/10355_2.png) [@Elvin\_Danyarov](https://discuss.appium.io/u/Elvin_Danyarov)\
**Post date:** [February 3, 2023, 4:24pm UTC](https://discuss.appium.io/t/dynamic-locator-in-ios-app/38450/4 "2023-02-03T16:24:33Z")

</div>

![07%20AM](https://discuss.appium.io/uploads/default/original/2X/f/f16a171b8301fff5c6da7355d3348152fefeb343.png)

---

<div class="post-metadata">

**Author:** ![Aleksei](https://discuss.appium.io/user_avatar/discuss.appium.io/aleksei/32/6267_2.png) [@Aleksei](https://discuss.appium.io/u/Aleksei)\
**Post date:** [February 3, 2023, 4:30pm UTC](https://discuss.appium.io/t/dynamic-locator-in-ios-app/38450/5 "2023-02-03T16:30:53Z")

</div>

```auto
@iOSXCUITFindBy(iOSNsPredicate = "type == 'XCUIElementTypeButton' AND label BEGINSWITH 'Lina Test Enrollment, Due in '")

```

---

<div class="post-metadata">

**Author:** ![Elvin\_Danyarov](https://discuss.appium.io/user_avatar/discuss.appium.io/elvin_danyarov/32/10355_2.png) [@Elvin\_Danyarov](https://discuss.appium.io/u/Elvin_Danyarov)\
**Post date:** [February 3, 2023, 4:42pm UTC](https://discuss.appium.io/t/dynamic-locator-in-ios-app/38450/6 "2023-02-03T16:42:28Z")

</div>

@Aleksei you just saved the whole day for me. Thank you champion, appreciate your help

---

<div class="post-metadata">

**Author:** ![mykola-mokhnach](https://discuss.appium.io/user_avatar/discuss.appium.io/mykola-mokhnach/32/4578_2.png) [@mykola-mokhnach](https://discuss.appium.io/u/mykola-mokhnach)\
**Post date:** [February 3, 2023, 6:16pm UTC](https://discuss.appium.io/t/dynamic-locator-in-ios-app/38450/7 "2023-02-03T18:16:07Z")

</div>

iOS predicates also allow to use LIKE or MATCHES operator in combination with template strings/regexps. Check [https://gitee.com/tonybearpan/appium/blob/c2c333b3af0c8f1292768f2e6b52aa658e14a6e6/docs/en/writing-running-appium/ios\_predicate.md](https://gitee.com/tonybearpan/appium/blob/c2c333b3af0c8f1292768f2e6b52aa658e14a6e6/docs/en/writing-running-appium/ios_predicate.md) for more details.
