Appium 使用 uiautomator 2 檢測 toast, 同樣的程式碼在 Pixel 2XL (android 10) 上就可以正常執行;在 Pixel 2 (android 9) 上就報錯,搞了一段時間沒搞定,請各位出出招,謝謝
Appium 版本:1.13.0
SDK:
這些都已經安裝好了
使用 uiautomator 2 檢測 toast, 同樣的程式碼在 Pixel 2XL (android 10) 上就可以正常執行;在 Pixel 2 (android 9) 上就報錯:
(1)cmd:
E
======================================================================
ERROR: test_case (__main__.BtSwitchTset)
----------------------------------------------------------------------
Traceback (most recent call last):
File "Developer_Toast_2.py", line 36, in setUp
self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
File "C:\Users\cody.ming\AppData\Local\Programs\Python\Python37\lib\site-packages\appium\webdriver\webdriver.py", line 144, in __init__
proxy
File "C:\Users\cody.ming\AppData\Local\Programs\Python\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "C:\Users\cody.ming\AppData\Local\Programs\Python\Python37\lib\site-packages\appium\webdriver\webdriver.py", line 219, in start_session
response = self.execute(RemoteCommand.NEW_SESSION, parameters)
File "C:\Users\cody.ming\AppData\Local\Programs\Python\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\cody.ming\AppData\Local\Programs\Python\Python37\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command 'E\:\\Andr
oid_for_Appium\\android-sdk_r24.4.1-windows\\android-sdk-windows\\platform-tools\\adb.exe -P 5037 -s FA7971A04040 shell pm install /data/local/tmp/appium_cache/56abf1bf10f6562619a2dd8fb060718e27c4cb28
.apk' exited with code 1'; Stderr: ''; Code: '1'
----------------------------------------------------------------------
Ran 1 test in 17.730s
FAILED (errors=1)
(2)Appium:
看著就這四句黃歎號有些問題
另外,程式碼如下:
import subprocess
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
import unittest
import time, os
from selenium.webdriver.support import expected_conditions as EC
import uiautomator2 as u2
from selenium.webdriver.common.by import By
import warnings
class ToastTset(unittest.TestCase):
def setUp(self):
warnings.simplefilter("ignore", ResourceWarning)
os.system("adb shell input keyevent 26")
os.system("adb shell input keyevent 3")
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '9' #Pixel 2
desired_caps['deviceName'] = 'FA7971A04040' #Pixel 2
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = 'com.android.settings.Settings'
desired_caps ['automationName'] ='UiAutomator2'
self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
def test_case(self):
driver = self.driver
item = driver.find_element_by_android_uiautomator('new UiScrollable(new UiSelector().scrollable(true).instance(0)).getChildByText(new UiSelector().className("android.widget.TextView"), "系統", true)')
item.click()
driver.find_element_by_android_uiautomator('new UiSelector().text("關於手機")').click()
item_ver = driver.find_element_by_android_uiautomator('new UiScrollable(new UiSelector().scrollable(true).instance(0)).getChildByText(new UiSelector().className("android.widget.TextView"), "版本號", true)')
item_ver.click()
try:
#檢測toast內容的方法
toast_loc = ("xpath", ".//*[contains(@text,'您已處於')]")
t = WebDriverWait(driver, 30, 0.01).until(EC.presence_of_element_located(toast_loc))
print(t) #若檢測到toast,則會輸出一句session資訊
print(driver.find_element_by_xpath(".//*[contains(@text,'您已處於')]").text) #若檢測到,輸出toast內容
except:
print("非開發者模式")
time.sleep(5)
def tearDown(self):
self.driver.quit()
os.system("adb shell input keyevent 26")
if __name__ == '__main__':
unittest.main()
同樣的程式碼在 Pixel 2XL (android 10) 上就可以正常執行;在 Pixel 2 (android 9) 上就報錯,搞了一段時間沒搞定,請各位出出招,謝謝!
相關文章
- 請問各位大俠如何Oralce資料庫上安裝??謝謝!資料庫
- 圖片上傳出錯--高手賜教!(謝謝)
- 關於servlet多執行緒序的疑問,請各位仁兄作答,謝謝。Servlet執行緒
- 請教關於jive原始碼,請各位高手幫忙 ,謝謝!!!原始碼
- springboot部署在伺服器上使用圖片上傳功能隔一段時間就會報錯Spring Boot伺服器
- js檢測一段程式碼的執行消耗時間JS
- 使用 ARChon 執行時環境在 Ubuntu 上執行 Android 應用UbuntuAndroid
- 在 PC 上嘗試樹莓派的 PIXEL OS樹莓派
- 求助!關於執行緒的問題?各位大俠謝謝了!!!執行緒
- 請教tomcat連線sqlserver的問題!!謝謝各位!TomcatSQLServer
- 請問下後臺附件上傳提示沒有上傳的檔案是什麼原因呢? 謝謝
- 各位老師請指教。movsx,cdq是什麼意思。另外這段程式的密碼演算法。謝謝 (2千字)密碼演算法
- 在rhel4上執行ocfs2console出錯
- 請問這個報錯該怎麼解決,謝謝
- 同樣SQL同樣執行計劃在不同節點執行時間差很遠SQL
- 怎樣在windows上定時執行python指令碼WindowsPython指令碼
- Appium 1.17.1 使用 UiAutomator2 時出現 [INSTALL_PARSE_FAILED_NO_CERTIFICATES] 的錯誤APPUIAI
- 開發Android應用程式,在Android10的系統上提示網路出錯?Android
- 請教在Oracle中生成XML中文字元出現亂碼的問題,先謝謝了!OracleXML字元
- 使用 MediaCodec 在 Android 上進行硬解碼Android
- JavaScript 檢測程式碼執行時間JavaScript
- 謝謝各位高手給個意見
- 在android上執行的數學工具軟體Maxima On AndroidAndroid
- javascript如何測試一段程式碼的執行時間JavaScript
- 請各位給我指路:請問要學習J2EE我需要學習那些方面的東西?謝謝了
- python+appium 在真機上執行到獲取螢幕大小的方法就報錯了,在夜神模擬器上沒有遇到過。有大佬遇到類似的問題?PythonAPP
- 關於 Appium 中 ios 自動化測試的幾個問題,請教下大神,謝謝APPiOS
- 請教cmp實體bean得事務超時時間設定,謝謝Bean
- Android 6.0 在執行時請求許可權Android
- 求:j2ee應用於bea weblogic server 電子書, 謝謝各位WebServer
- oracle出現監聽不正常--執行一段時間Oracle
- 向各位大哥請教:web專案的開發環境如何搭建?謝謝!!!Web開發環境
- 一段測試try...catch執行時間的程式碼
- 關於petstore的執行問題,謝謝~
- 在GitHub上的Android開原始碼SuperTextView的使用GithubAndroid原始碼TextView
- 谷歌10月9日在巴黎舉行新品釋出會 谷歌Pixel 3系列新機或亮相谷歌
- 收集所有能夠使用 for in 來遍歷的語言,謝謝各位大佬
- Android進階:六、在子執行緒中直接使用 Toast 及其原理Android執行緒AST