appium 元素定位

Posted 红豆·

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了appium 元素定位相关的知识,希望对你有一定的参考价值。

查找控件的方式:
  1.通过id查找
  self.driver.find_element_by_id("com.guokr.mentor:id/text_view_topic_title")
  self.driver.find_elements_by_id("")[0]


  2.通过name查找
  self.driver.find_element_by_name("推荐")


  3.通过class_name查找
  self.driver.find_elements_by_class_name("android.widget.TextView")


  4.通过xpath查找
  self.driver.find_element_by_xpath("")


  5.通过uiautomator的方式查找
   self.driver.find_element_by_android_uiautomator()


  6.通过uiautomation的方式查找
  self.driver.find_element_by_ios_uiautomation()

 

对控件操作 以下以element代表控件:
  获取手机屏幕分辨率
  width=self.driver.get_window_size()[‘width‘]    获取宽
  height=self.driver.get_window_size()[‘height‘]   获取高


  1.点击
  element.click()


  2.点击坐标 手机左上角 (0,0)
  mobile: 和tap之间需要有一个空格!  

  self.driver.execute_script("mobile: tap",{"x":0.5*width,"y":0.5*height})

  3.tap点击
  TouchAction(self.driver).tap(element).perform()

  4.滑动flick
  向上滑动为负数,向下滑动为正数 按住一点进行滑动
  向左是负数,向右是整数
  TouchActions(self.driver).flick(-10,-30).perform()


  5.对元素进行滑动 向左是负数,向右是整数 最后一个参数是多长时间
  TouchActions(self.driver).flick_element(element,-100,-100,5).perfor  

  6.swipe滑动 直接滑动

  startX,startY是滑动的起始坐标;endX和endY是滑动的结束坐标;touchCount (默认 为1): 触摸数量,即手指的个数;duration是滑动的持续时间,单位s。
  self.driver.execute_script("mobile: swipe",{‘startX‘:100,‘startY‘:100,‘endX‘:100,‘endY‘:200,‘tapCount‘:1,‘duration‘:2})


  7.长按long_press
  TouchActions(self.driver).long_press(element).perform()
  8.按着某个点拖到另一个点 按住点
  TouchAction(self.driver).press(x=10,y=11).move_to(x=100,y=100).release().perform()

  9.获取值属性 text
  e1=element.text


  10.输入框输入文字
  desired_caps[‘unicodeKeyboard‘]=‘true‘
  desired_caps[‘resetKeyboard‘]=‘true‘
  首先点击控件 获取到焦点再输入
  element.click()
  element.send_keys(u‘宝马‘)


  11.使用os命令 os命令相当于调用cmd命令
  os.system("adb shell input text 宝马")


  12.安卓keycode
  self.driver.press_keycode(4)

断言方式 使用unittest 自带有assert的断言方式:
  1.校验值是否一致 assertEqual 预期值 实际值
  self.assertEqual(element.text,"搜你想搜")
  assert cmp("1","2")==0


  2.校验值不一致
  self.assertNotEqual("1","2")


  3.包含关系
  self.assertIn("你好","你好呀")


  4.不包含
  self.assertNotIn("你","他们")

 




















































以上是关于appium 元素定位的主要内容,如果未能解决你的问题,请参考以下文章

appium 元素定位

appium 怎么跳转页面定位元素

python+Appium自动化:id元素定位

appium 怎么定位纯 HTML5 页面应用

Appium:元素定位(加强版)

appium笔记1:获取app页面元素