zoukankan      html  css  js  c++  java
  • Python+Appium自动化测试(12)-通过坐标定位元素

    在使用appium做app自动化测试的过程中,可能会遇到元素的属性值不是唯一的情况,导致不能通过find_element_bi_xx()方法定位元素,这个时候我们就可以通过坐标来定位元素。

    1,通过绝对坐标定位(不推荐)

    在手机(或模拟器)的开发者选项里打开指针位置,任意点的绝对坐标都能获取到,如下A点的坐标为(542, 1362)

    2,通过相对坐标定位(推荐)

    更换不同分辨的测试机后,之前获取的手机某个位置点的绝对坐标就会改变,这样每次更换测试机都需要更改坐标,显然是不方便代码的维护,所以就需要获取相对坐标。

    2.1,获取相对坐标的思路:

    1,选择任意一台测试手机(或模拟器)

    2,获取需要定位的点的绝对坐标(x1, y1)

    3,获取当前测试机屏幕的宽度(w1)、高度(h1)

    4,获取该点横坐标与屏幕宽的比(x1/w1),纵坐标与屏幕高的比(y1/h1)

    5,更换测试机后,获取新的测试机屏幕的宽(w2),高(h2)

    6,计算新测试机上该点横坐标x2=w2 * (x1/w1),纵坐标y2 = h2 * (y1/h1)

    2.2,点击A点代码如下:

    点击绝对坐标

    # 点击绝对坐标时的代码,测试机屏幕宽1080,高2340
    driver.tap(542, 1362)
    

    点击相对坐标

    # 重新封装点击A点相对坐标的方法
    def tapA(driver):
        # 比例系数
        x = 542/1080
        y = 1362/2340
        # 获取新测试机屏幕宽、高
        w = driver.get_window_size()['width']
        h = driver.get_window_size()['height']
        # 屏幕宽高乘以A点的比例系数,即可得A点在新测试机上坐标
        driver.tap(x*w, y*h)
    

    需要注意:

    1,webdriver中提供坐标点击方法tap(),而元素点击方法则是click();

    2,区别于TouchAction类中的tap()方法,不需要构造TouchAction对象,driver对象调用即可。

  • 相关阅读:
    统计中的f检验和t检验的区别
    统计中的t检验
    降维工具箱drtool
    pca主成份分析方法
    经典相关分析,典型关分析, CCA,Canonical Correlation Analysis,多元变量分析,线性组合,相关系数最大化
    博客中插入公式——之在线数学公式生成
    Mathtype常用快捷键
    下标运算符重载
    赋值运算符的重载
    算术和关系运算符重载
  • 原文地址:https://www.cnblogs.com/lfr0123/p/13695422.html
Copyright © 2011-2022 走看看