1.元素的常用方法
1)点击:element.click()
2)输入操作:element.send_keys("appium")
3)设置元素的值:element.set_value("appium")
4)清除操作:element.clear()
5)是否可见:element.is_displayed()返回true/false
6)是否可用:element.is_enabled()返回true/false
7)是否被选中:element.is_selected()返回true/false
8)获取属性值:get_attribute(name)
在dom里面一个节点就是一个node
有些属性不能通过get_attribute获取,比如:index
2.元素的常用属性
获取元素坐标获取到的是左上角的坐标
以雪球app为例,设计用例
class Test_xueqiu:
def setup(self):
desired_caps = {}
desired_caps[\'platformName\'] = \'Android\'
desired_caps[\'platformVersion\'] = \'6.0\'
desired_caps[\'deviceName\'] = \'emulator-5554\'
desired_caps[\'appPackage\'] = \'com.xueqiu.android\'
desired_caps[\'appActivity\'] = \'com.xueqiu.android.common.MainActivity\'
desired_caps[\'noReset\'] = \'true\'
desired_caps[\'dontStopAppOnReset\'] = \'true\'
desired_caps[\'skipDeviceInitialization\'] = \'true\'
# 默认为英文输入法,将输入法改为中文
desired_caps[\'unicodeKeyboard\'] = \'true\'
desired_caps[\'resetKeyboard\'] = \'true\'
self.driver = webdriver.Remote(\'http://localhost:4723/wd/hub\', desired_caps)
self.driver.implicitly_wait(10)
def teardown(self):
self.driver.back()
self.driver.back()
self.driver.quit()
def test_attr(self):
"""
1.打开雪球应用首页
2.定位首页的搜索框
3.判断搜索框是否可用,并查看搜索框name属性值
4.打印搜索框这个元素的左上角坐标和它的宽高
5.想搜索框输入:京东
6.判断【京东】是否可见
7.如果可见,打印"搜索成功"点击,如果不可见,打印搜素失败
:return:
"""
elem = self.driver.find_element_by_id(\'com.xueqiu.android:id/tv_search\')
search_enabled = elem.is_enabled()
print(elem.text)
print(elem.location)
print(elem.size)
if search_enabled == True:
elem.click()
self.driver.find_element_by_id(\'com.xueqiu.android:id/search_input_text\').send_keys(\'京东\')
jd_elem = self.driver.find_element_by_xpath("//*[@resource-id=\'com.xueqiu.android:id/name\' and @text=\'京东\']")
#注意⚠️ 打印的是一个字符串的True,不是bool值,get_attibute的所有属性都可以获取到
print(jd_elem.get_attribute(\'displayed\'))
elem_display = jd_elem.get_attribute(\'displayed\')
if elem_display == \'true\':
print(\'搜索成功\')
else:
print(\'搜索失败\')