1. 定位方式
语法:find_element_by_定位方式(定位表达式)
通过 id 定位
两种定位表达式都可以:
driver.find_element_by_id("com.xsteach.appedu:id/rl_home_top_search")
driver.find_element_by_id("rl_home_top_search")
通过 class_name 定位
取 class 的内容:
# 方式1
driver.find_element_by_class_name("android.widget.TextView")
# 方式2
driver.find_elements_by_android_uiautomator('new UiSelector().className("android.widget.TextView")')[2].click()
通过 xpath 定位
driver.find_element_by_xpath("//android.widget.RadioButton[@text='个人中心']")
通过 text 定位
需要使用 uiautomator 的定位方式:
# 获取单个text元素对象
driver.find_element_by_android_uiautomator("new UiSelector().text(\"个人中心\")")
# 获取多个text元素对象并使用索引
driver.find_elements_by_android_uiautomator("new UiSelector().text(\"个人中心\")")[0].click()
# 部分文字匹配
driver.find_element_by_android_uiautomator('new UiSelector().textContains("中心")').click()
# 正则匹配
driver.find_element_by_android_uiautomator('new UiSelector().textMatches(".*的课程.*")').click()
通过 css_selector 定位
只适用于 webview 的 html 页面,继承自 webdriver,与 pc 版本的 UI 测试一致。
driver.find_element_by_css_selector()
通过 link_text 定位
只适用于 webview 的 html 页面,继承自 webdriver,与 PC 版本的 UI 测试一致。
driver.find_element_by_link_text()
通过 name 定位
webview 容器中的 html 页面可以用 name 定位,native 并没有 name 属性。
driver.find_element_by_name()</