[英]Appium and Robot Framework: Element locator with prefix not supported
[英]"Cached element do not exists in DOM" when run Appium with Robot Framework
我正在使用Appium和 Android 設備上的Robot 框架進行自動化測試。 我在Jenkins上創建計划運行。 我的測試流程是在頁面A中輸入一些數據並提交,然后切換到頁面B檢查結果並切換到頁面A輸入新數據。 我重復這個循環大約 10 多次。 在大約 4-5 輪內一切正常,但之后出現錯誤:
StaleElementReferenceException:消息:緩存元素'By.xpath://android.widget.TextView [@text ='Limit']'不再存在於DOM中
TextView
在頁面 A 中。我監控機器人並看到TextView
已顯示,但機器人沒有看到它。 我嘗試重新啟動設備,但問題沒有解決。 我在互聯網上搜索,發現一些人面臨同樣的問題,但他們使用不同的編程語言,如 Java 或 Python。 我不知道接下來我要做什么。
開發工具:
Appium版本:1.21.0
機器人框架版本:4.1.2(win32 上的 Python 3.10.0)
首先我不使用機器人框架,但根據這個https://robocorp.com/docs/languages-and-frameworks/robot-framework/try-except-finally-exception- catch -and-handling 代碼應該是相似的.
其次,我不確定這是否是解決此問題的最佳方法。 我認為您可以對預期的條件類做一些事情,以“更清潔的方式”解決這個問題,但我對它不太熟悉,無法向您展示/告訴您。 相反,我所做的是這樣的......
from selenium.common.exceptions import StaleElementReferenceException
while some_limiting_factor:
try:
# logic for submitting page A, assertions for page B
except StaleElementReferenceException:
element = driver.find_element('By.xpath: //android.widget.TextView[@text='Limit']' )
盡管我想在 appium 中緩存元素,但服務本身似乎不希望您這樣做,至少在我的經驗中不是。 每次都獲得一個新元素似乎可以確保“緩慢但穩定”的測試。 希望有一天有人可以向我展示 appium 的深層秘密。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.