app、appium UI自动化之高级定位技巧

1.xpath定位进阶

层级定位

  • 父节点定位子节点
  • 子节点定位父节点
  • 子节点定位兄弟节点
  • 爷爷节点定位孙子节点
具体参考该网站:

1.打开雪球app
2.点击搜索输入框
3.想搜索框中输入“aliababa”
4.在搜索结果里面查找,阿里巴巴【香港股票】的价格
 
    def test_price(self):
        self.driver.find_element_by_id('com.xueqiu.android:id/tv_search').click()

        self.driver.find_element_by_id('com.xueqiu.android:id/search_input_text').send_keys('阿里巴巴')
        # 这里必须要添加双引号,因为里面有单引号
        self.driver.find_element_by_xpath("//*[@resource-id='com.xueqiu.android:id/name' and @text='阿里巴巴']").click()
        lacator = (MobileBy.XPATH, "//*[@text=09988]/../../..//*[@resource-id='com.xueqiu.android:id/current_price']")
        # 显式等待
        # WebDriverWait(self.driver, 10).until(expected_conditions.element_to_be_clickable(lacator))
        ele = WebDriverWait(self.driver, 10).until(lambda x: x.find_element(*lacator))
        # ele = self.driver.find_element(*lacator)
        print(ele.text)
        current_price = float(ele.text)
        # current_price = self.driver.find_element_by_xpath(
        #     "//*[@text=09988]/../../..//*[@resource-id='com.xueqiu.android:id/current_price']").text
        # 这里是float类型不要用int,因为是价格
        assert float(current_price) > 150

2.uiautomator定位表达式

它在appium里集成了android和ios的工作引擎
因为缺点较明显,所以平时工作中也不怎么使用该方式 , 可以看出是以字符串的形式定位的,IDE没有提示,容易出错,但是使用此方法速度极佳

定位方式:可以实现模糊匹配

 
 
组合定位
父子关系定位
由于这个比较常用,但是又比较长,将代码贴出来可以进行复制粘贴使用
'new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text("雪盈福利").instance(0))'

 雪球app登录,以及滑动点击关注案例:

    def test_login(self):
        self.driver.find_element_by_android_uiautomator('new UiSelector().text("我的")').click()
        self.driver.find_element_by_android_uiautomator('new UiSelector().text("登录雪球")').click()

    def test_scroll(self):
        self.driver.find_element_by_android_uiautomator('new UiSelector().text("关注")').click()
        self.driver.find_element_by_android_uiautomator(
            'new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text("雪盈福利").instance(0))').click()

  

 
 
 
 
 
 

3.滑动定位

猜你喜欢

转载自www.cnblogs.com/zhaikunkun/p/12737239.html