<pre><code>import os
from appium import webdriver
import time
PATH = lambda p: os.path.abspath(
os.path.join(os.path.dirname(__file__), p))
desired_caps = {
"deviceName": "emulator-5554",
"platformName": "android",
"appPackage": "com.android.calculator2",
"appActivity": ".Calculator",
"noReset": True
}
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
while True:
try:
el1 = driver.find_element_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.support.v4.view.ViewPager/android.widget.LinearLayout/android.view.ViewGroup[1]/android.widget.Button[6]')
el1.click()
time.sleep(1)
el2 = driver.find_element_by_accessibility_id("times")
el2.click()
time.sleep(1)
el3 = driver.find_element_by_xpath(
'/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.support.v4.view.ViewPager/android.widget.LinearLayout/android.view.ViewGroup[1]/android.widget.Button[9]')
el3.click()
time.sleep(1)
el4 = driver.find_element_by_accessibility_id("equals")
el4.click()
time.sleep(1)
except ValueError:
print(" ERROR BRO ")
pass
break
</code></pre>
<blockquote>
<p>Some ids are working, others are not. I used xpath instead of id and
the error improved. I think the number of ids is constantly changing.
Xpath helped.</p>
</blockquote>