Appium在操作混合App或Android App的H5頁面時, 常常需要定位H5頁面中的元素, 傳統方式是 翻牆 + 使用Chrome://inspect來定位元素, 環境准備相當繁瑣, 不僅需要想辦法翻牆, 而且還需要Android設備安裝Google框架以及手機版Chrome瀏覽器以及相應的chromedriver.
最近發現使用Appium Inspector即可實現H5頁面元素的定位, 不需要額外安裝任何軟件。
操作步驟
- 啟動夜神模擬器, 安裝testApp(相關app可添加博主微信索要)
- adb連接,模擬器
adb connect 127.0.0.1:62001
- 啟動Appium, 點擊右上角搜索圖標進入Appium Inspector
- 使用以下配置,啟動會話
{
"platformName": "Android",
"platformVersion": "5.1.1",
"deviceName": "127.0.0.1:62001",
"appPackage": "com.example.testapp",
"appActivity": "com.example.testapp.MainActivity"
}
- 在模擬器上輸入http://m.baidu.com,點擊Go按鈕,使用Appium Inspector定位查看頁面元素,如下圖:
Python操作該混合App代碼
from appium import webdriver
from time import sleep
caps = {
"platformName": "Android",
"platformVersion": "5.1.1",
"deviceName": "127.0.0.1:62001",
"appPackage": "com.example.testapp",
"appActivity": "com.example.testapp.MainActivity"
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', caps)
driver.find_element_by_id("com.example.testapp:id/urlField").send_keys("http://m.baidu.com")
driver.find_element_by_id("com.example.testapp:id/goButton").click()
driver.find_element_by_xpath('//android.webkit.WebView[@content-desc="百度一下"]/android.widget.EditText').send_keys("Appium")
driver.find_element_by_xpath('//android.webkit.WebView[@content-desc="百度一下"]/android.widget.Button[@content-desc="百度一下"]').click()
sleep(3)
driver.quit()