zoukankan      html  css  js  c++  java
  • appium+robotframework+python连接真机定位不到元素的问题处理

    这几天遇到了一个比较奇怪的问题,使用RF框架进行自动化测试的时候定位不到部分元素

    并且这个元素的是有id的,更换了xpath定位也行不通,冥思苦想,加上谷歌百度,终于解决了

    解决步骤如下:

    1、定位问题

    首先编写个简单的test.py,用来进行debug

    进入包含定位不到元素的页面,打印出pagesource

    from appium import webdriver
    from time import sleep
    
    meizu = {"platformName": "Android", "platformVersion": "7.0", "deviceName": "891QSDU5Q57P9",
                 "appPackage": "your_app_packagename", "appActivity": ".views.MainActivity"}
    driver = webdriver.Remote("http://localhost:4723/wd/hub", meizu)
    ss=driver.find_element_by_id('com.android.packageinstaller:id/permission_allow_button')
    for i   in range(4):
        sleep(3)
        ss.click()
    #print(driver.page_source)
    sleep(5)
    s2=driver.find_element_by_id('button')
    sleep(3)
    s2.click()        #点击车辆页
    # s4=driver.find_element_by_id('xxx')
    # s4.click()        #点击我的页面
    print(driver.page_source)
    s3=driver.find_element_by_id('xxxx')
    s3.click()

    根据需要将部分参数换成你所需要的参数,然后打印出pagesource,打印出来我才发现,打印出来的pagesource根本没有我所需要的元素。

    也就说明了我的定位方式是没有问题的,是页面出现了问题。有一层浮层遮挡住了,导致appium无法进行定位(当然,如果这一步打印出的pagesouce里包含你所需要的元素,请进行检查元素的定位的方式是否出错)

    2、解决问题

    问题其实也比较简单解决,就是安卓6.0以后推荐使用uiautomator2进行定位,问题就很轻松愉快的解决了

    npm install appium-uiautomator2-driver

    安装完毕,打开appium,在启动参数里添加

    "automationName": "uiautomator2"

    如果遇见还是打不开,出现奇怪的错误,请用管理员权限打开RIDE和appium试试

  • 相关阅读:
    bzoj4165 矩阵 堆维护多路归并
    bzoj2802 [Poi2012]Warehouse Store 贪心+堆
    bzoj1367 [Baltic2004]sequence 左偏树+贪心
    bzoj3011 [Usaco2012 Dec]Running Away From the Barn 左偏树
    uoj207 共价大爷游长沙 子树信息 LCT + 随机化 + 路径覆盖
    bzoj4764 弹飞大爷 LCT
    bzoj4817 & loj2001 [Sdoi2017]树点涂色 LCT + 线段树
    bzoj5020 & loj2289 [THUWC 2017]在美妙的数学王国中畅游 LCT + 泰勒展开
    bzoj4998 星球联盟 LCT + 并查集
    bzoj3091 城市旅行 LCT + 区间合并
  • 原文地址:https://www.cnblogs.com/bestwei/p/11242694.html
Copyright © 2011-2022 走看看