當打開一個應用時,會有一個無關緊要的提示框,如果要繼續操作,需要先關閉提示框,如下圖(如新用戶福利提示):
此時,如果你直接用Appium inspector或者Android uiautomatorviewer一般是找不到它的相關屬性的,我們手動操作是點擊圖中的“知道了”,appium自動化操作也應該是去點擊此選項的,我的代碼如下:
from appium import webdriver from time import sleep caps = { 'platformName':'Android', 'deviceName':'xxxx', 'appPackage':'com.baidu.yuedu', 'appActivity':'com.baidu.yuedu.base.ui.MainActivity' } driver = webdriver.Remote("http://localhost:4723/wd/hub", caps) sleep(2)
try:
driver.find_element_by_xpath("//*[@text='知道了']").click() #點擊啟動應用后的提示框里的"知道了"
except Exception as e:
pass sleep(2) driver.quit()
即用xpath嘗試定位text='知道了',因為這里的這個彈框不是單獨的iframe,而且肯定有唯一的text屬性值,所以成功定位並點擊“知道了”了,提示框關閉進入百度閱讀首頁。
如此就完成然后就處理了打開應用時的提示框啦!
注:這個方法可能不是萬能的,但還是有參考性的,如果對定位理解更多的話就會明白的(還有這是基於UI的測試~)