android 基礎(chǔ)知識
- Android 是通過容器的布局屬性來管理子控件的位置關(guān)系,布局過程就是把界面上的所有的控件,根據(jù)他們的間距的大小,擺放在正確的位置
- Android 七大布局
- LinearLayout(線性布局)
- RelativeLayout(相對布局)
- FrameLayout(幀布局)
- AbsoluteLayout(絕對布局)
- TableLayout(表格布局)
- GridLayout(網(wǎng)格布局)
- ConstraintLayout(約束布局)
- Android 四大組件
- activity 與用戶交互的可視化界面
- service 實(shí)現(xiàn)程序后臺運(yùn)行的解決方案
- content provider 內(nèi)容提供者,提供程序所需要的數(shù)據(jù)
- broadcast receiver 廣播接收器,監(jiān)聽外部事件的到來(比如來電)
- 常用的控件
- TextView(文本控件),EditText(可編輯文本控件)
- Button(按鈕),ImageButton(圖片按鈕),ToggleButton(開關(guān)按鈕)
- ImageView(圖片控件)
- CheckBox(復(fù)選框控件),RadioButton(單選框控件)
- 布局是一種可用于放置很多控件的容器,它可以按照一定的規(guī)律調(diào)整內(nèi)部控件的位置,從而編寫出精美的界面。當(dāng)然,布局的內(nèi)部除了放置控件外,也可以放置布局,通過多層布局的嵌套,我們就能夠完成一些比較復(fù)雜的界面。
dom 結(jié)構(gòu)解讀
- dom:Document Object Model 文檔對象模型
- dom 應(yīng)用:最早應(yīng)用于 html 和 js 的交互。用于表示界面的控件層級,界面的結(jié)構(gòu)化描述,常見的格式為 html、xml。核心元素為節(jié)點(diǎn)和屬性。
- xpath:xml 路徑語言,用于 xml 中的節(jié)點(diǎn)定位。
- android 應(yīng)用的層級結(jié)果與 html 不一樣,是一個定制的 xml
- app source 類似于 dom,表示 app 的層級,代表了界面里面所有的控件樹的結(jié)構(gòu)。
- 每個控件都有它的屬性(resourceid,xpath,aid),沒有 css 屬性
id、aid、xpath 定位方法
-
測試步驟三要素:
- 定位、交互、斷言
- 定位方式
- id 定位
driver.findElement(By.id("xxx"));(content-desc 屬性值) - accessibility_id 定位
driver.findElement(MobileBy.AccessibilityId("xxx"));(content-desc屬性值) - xpath 定位
driver.findElement(By.xpath("xxx"))(xpath 屬性值) - classname 定位(不推薦)
https://www.freefomatter.com/xpath-tester.html/#ad-output格式化xml
- id 定位
-
xpath 定位
- 絕對定位
- 相對定位
- //*[@test='text屬性值']
- //*[@resource-id='id屬性值']
-
多屬性精準(zhǔn)定位
- //*[@text='text屬性值' and @resource-id='id屬性值']