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试试

  • 相关阅读:
    oracle 11g 中 (oracle 10g) crsctl 的 替换命令
    BZOJ 2792 Poi2012 Well 二分答案
    java基础入门-多线程同步浅析-以银行转账为样例
    CF 316div2 E.Pig and Palindromes
    Linux 性能监控 —— Load Average
    UISearchBar cancel 按钮设置文本
    UISlider 设置增量
    推荐一个在线json数据格式化网站
    解决ARC下performselector-may-cause-a-leak-because-its-selector-is-unknown 警告
    UITextView 添加 pleaceholder
  • 原文地址:https://www.cnblogs.com/bestwei/p/11242694.html
Copyright © 2011-2022 走看看