这个问题通常是由于应用正在运行过程中,界面元素的位置动态改变,导致 Appium Inspector 无法找到对应的元素而报错。解决方法可以尝试以下两种:
将 Inspector的定位方式由 XPath 转换为其它方法(如 resource-id),这样可以避免 XPath 定位方式带来的一些问题。
在代码中使用显示等待的方式等待界面元素加载完成后再进行操作,例如:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, "element_id")))
这段代码会等待 ID 为 "element_id" 的元素加载出来后再进行后续操作,如果超时时间内还没有加载完成,就会抛出 TimeoutException 异常。这样可以避免界面元素动态改变导致 Inspector 无法找到元素的问题。