Appium獲取toast方法封裝

一、前置說明

toast消失的很快,并且通過uiautomatorviewer也不能獲取到它的定位信息,如下圖:

二、操作步驟

toast的class name值為android.widget.Toast,雖然toast消失的很快,但是它終究是在Dom結構中出現過,所以我們可以使用xpath來定位toast元素:

    def get_toast(self, text=None, timeout=3, interval=0.5):# 如果同時出現多個toast,可以使用這種方式if text:return WebDriverWait(self, timeout, interval).until(EC.presence_of_element_located(('xpath', f'//*[contains(@text, "{text}")]')))return WebDriverWait(self, timeout, interval).until(EC.presence_of_element_located(('xpath', '//*[@class="android.widget.Toast"]')))

三、Demo驗證

注意:appium在v1.6.3以上才支持獲取toast,并且需要指定使用Uiautomator2庫。

def test_get_toast():import logginglogging.basicConfig(level=logging.DEBUG)from driver.appium.driver import WebDriverappium_server_url = 'http://localhost:4723'capabilities = {"platformName": "Android","automationName": "uiautomator2",  # 注意:要指定uiautomator2"deviceName": "127.0.0.1:62001","app": "D:\\resources\\ApiDemos-debug.apk",}driver = WebDriver(command_executor=appium_server_url, capabilities=capabilities)driver.smart_find_element(by='text', value='App').click()driver.smart_find_element(by='text', value='Notification').click()driver.smart_find_element(by='text', value='NotifyWithText').click()driver.smart_find_element(by='text', value='SHOW SHORT NOTIFICATION').click()element = driver.get_toast('Short notification')assert element.text == 'Short notification'

日志輸出:

============================= test session starts =============================
collecting ... collected 1 itemtest_appium.py::test_get_toast PASSED============================= 1 passed in 19.91s ==============================

歡迎技術交流:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/209124.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/209124.shtml
英文地址,請注明出處:http://en.pswp.cn/news/209124.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【計算機網絡】HTTP請求

目錄 前言 HTTP請求報文格式 一. 請求行 HTTP請求方法 GET和POST的區別 URL 二. 請求頭 常見的Header 常見的額請求體數據類型 三. 請求體 結束語 前言 HTTP是應用層的一個協議。實際我們訪問一個網頁,都會像該網頁的服務器發送HTTP請求,服務…

使用Java將圖片添加到Excel的幾種方式

1、超鏈接 使用POI&#xff0c;依賴如下 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency>Java代碼如下,運行該程序它會在桌面創建ImageLinks.xlsx文件。 …

GPT-4V 在機器人領域的應用

在科技的浩渺宇宙中&#xff0c;OpenAI如一顆璀璨的星辰&#xff0c;于2023年9月25日&#xff0c;以一種全新的方式&#xff0c;向世界揭示了其最新的人工智能力作——GPT-4V模型。這次升級&#xff0c;為其旗下的聊天機器人ChatGPT裝配了語音和圖像的新功能&#xff0c;使得用…

『Linux升級路』進度條小程序

&#x1f525;博客主頁&#xff1a;小王又困了 &#x1f4da;系列專欄&#xff1a;Linux &#x1f31f;人之為學&#xff0c;不日近則日退 ??感謝大家點贊&#x1f44d;收藏?評論?? 目錄 一、預備知識 &#x1f4d2;1.1緩沖區 &#x1f4d2;1.2回車和換行 二、倒計…

修改正點原子綜合實驗的NES模擬器按鍵控制加橫屏

??????? 開發板&#xff1a;stm32f407探索者開發板V2 屏幕是4.3寸-800-480-MCU屏 手頭沒有V3開發板&#xff0c;只有V2&#xff0c;所以沒法測試 所以只講修改哪里&#xff0c;請自行修改 先改手柄部分&#xff0c;把手柄改成按鍵 找到左邊的nes文件夾中的nes_mai…

采用軌到軌輸出設計 LTC6363HMS8-2、LTC6363HMS8-1、LTC6363HRD、LTC6363IDCB差分放大器I

產品詳情 LTC6363 系列包括四個全差分、低功耗、低噪聲放大器&#xff0c;具有經優化的軌到軌輸出以驅動 SAR ADC。LTC6363 是一款獨立的差分放大器&#xff0c;通常使用四個外部電阻設置其增益。LTC6363-0.5、LTC6363-1 和 LTC6363-2 都有內部匹配電阻&#xff0c;可分別創建…

【Python百寶箱】代碼沖突?文件合并不再是問題!Python解決方案大揭秘

Python腳本與圖形工具&#xff1a;文件比較與合并的完整指南 前言 在軟件開發、版本控制和數據處理領域&#xff0c;文件比較和合并是至關重要的任務。Python生態系統中涌現了許多強大的工具和庫&#xff0c;為開發者提供了豐富的選擇。本指南將深入探討 Python 中常用的文件…

看完了一個動畫電影-心靈奇旅

refer: 開二倍速看完了&#xff0c;一部分是聽的&#xff0c;劇情還可以&#xff0c;就是普通的治愈片。 里邊有個臺詞&#xff1a; 一條小魚游到一條老魚旁邊說,“我要找到他們稱之為海洋的東西。” “海洋?”老魚問,“你現在就在海洋里啊。” “這兒?”小魚說,“這兒是水…

人工智能:走向未來的智慧之路

1. 定義與范疇 人工智能&#xff08;AI&#xff09;是一門研究如何使計算機系統能夠模擬人類智慧的科學與技術。這包括了機器學習、深度學習、自然語言處理、計算機視覺等多個子領域。機器學習讓計算機能夠通過數據學習&#xff0c;而深度學習則通過模擬人腦神經網絡的方式實現…

C++數據結構:B樹

目錄 一. 常見的搜索結構 二. B樹的概念 三. B樹節點的插入和遍歷 3.1 插入B樹節點 3.2 B樹遍歷 四. B樹和B*樹 4.1 B樹 4.2 B*樹 五. B樹索引原理 5.1 索引概述 5.2 MyISAM 5.3 InnoDB 六. 總結 一. 常見的搜索結構 表示1為在實際軟件開發項目中&#xff0c;常用…

博途PLC SCL間接尋址編程應用

這篇博客里我們將要學習Pointer和Any指針&#xff0c;PEEK和POKE指令&#xff0c;當然我們還可以數組類型數據實現數組指針尋址&#xff0c;具體應用介紹請參考下面文章鏈接&#xff1a; https://rxxw-control.blog.csdn.net/article/details/134761364https://rxxw-control.b…

一文講解如何從 Clickhouse 遷移數據至 DolphinDB

ClickHouse 是 Yandex 公司于2016年開源的 OLAP 列式數據庫管理系統&#xff0c;主要用于 WEB 流量分析。憑借面向列式存儲、支持數據壓縮、完備的 DBMS 功能、多核心并行處理的特點&#xff0c;ClickHouse 被廣泛應用于廣告流量、移動分析、網站分析等領域。 DolphinDB 是一款…

【Hadoop_02】Hadoop運行模式

1、Hadoop的scp與rsync命令&#xff08;1&#xff09;本地運行模式&#xff08;2&#xff09;完全分布式搭建【1】利用102將102的文件推到103【2】利用103將102的文件拉到103【3】利用103將102的文件拉到104 &#xff08;3&#xff09;rsync命令&#xff08;4&#xff09;xsync…

使用 HTML 地標角色提高可訪問性

請務必確保所有用戶都可以訪問您的網站&#xff0c;包括使用屏幕閱讀器等輔助技術的用戶。 一種方法是使用 ARIA 地標角色來幫助屏幕閱讀器用戶輕松瀏覽您的網站。使用地標角色還有其他好處&#xff0c;例如改進 HTML 的語義并更輕松地設置網站樣式。在這篇博文中&#xff0c;我…

深度探索Linux操作系統 —— 構建initramfs

系列文章目錄 深度探索Linux操作系統 —— 編譯過程分析 深度探索Linux操作系統 —— 構建工具鏈 深度探索Linux操作系統 —— 構建內核 深度探索Linux操作系統 —— 構建initramfs 文章目錄 系列文章目錄前言一、為什么需要 initramfs二、initramfs原理探討三、構建基本的init…

tomcat篇---第二篇

系列文章目錄 文章目錄 系列文章目錄前言一、tomcat容器是如何創建servlet類實例?用到了什么原理?二、tomcat 如何優化?三、熟悉tomcat的哪些配置?前言 前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到網站,這篇文章男女…

Web應用JSON數據保護(密碼算法、密鑰、數字簽名和數據加密)

1.JSON&#xff08;JavaScript Object Notation&#xff09; JSON是一種輕量級的數據交換格式&#xff0c;采用完全獨立于編程語言的文本格式來存儲和表示數據。JSON通過簡單的key-value鍵值對來描述數據&#xff0c;可以被廣泛用于網絡通信、數據存儲等各種應用場景&#xff0…

【重點】Flink四大基石

1. Time&#xff08;時間機制&#xff09; 時間概念 處理時間&#xff1a;執行具體操作時的機器時間&#xff08;例如 Java的 System.currentTimeMillis()) &#xff09;事件時間&#xff1a;數據本身攜帶的時間&#xff0c;事件產生時的時間。攝入時間&#xff1a;數據進入 …

代碼隨想錄算法訓練營第四十六天 _ 動態規劃_198.打家劫舍、213.打家劫舍II、337.打家劫舍 III。

學習目標&#xff1a; 動態規劃五部曲&#xff1a; ① 確定dp[i]的含義 ② 求遞推公式 ③ dp數組如何初始化 ④ 確定遍歷順序 ⑤ 打印遞歸數組 ---- 調試 引用自代碼隨想錄&#xff01; 60天訓練營打卡計劃&#xff01; 學習內容&#xff1a; 198.打家劫舍 動態規劃五步曲&a…

Python面向對象基礎

Python面向對象基礎 一、概念1.1面向對象的設計思想1.2 面向過程和面向對象1.2.1 面向過程1.2.2 面向對象1.2.3 面向過程和面向對象的優缺點 二、類和對象2.1 概念2.2 類的定義2.3 對象的創建2.3.1 類中未定義構造函數2.3.2 類中定義構造函數 2.4 類的設計 三、類中的成員3.1 變…