簡體   English   中英

使用 Robot Framework 運行 Appium 時,“DOM 中不存在緩存的元素”

[英]"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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM