zoukankan      html  css  js  c++  java
  • appium---第二个脚本,定位页面元素

    工具使用:

    1、android-sdk的自带工具---uiautomator工具

    2、使用find_element_by_id寻找元素位置

     1 from appium import webdriver;
     2 from appium import version;
     3 #from selenium import webdriver;
     4 import time;
     5 #目前最新更新
     6 
     7 #from appium import webDriver
     8 #,
     9 pack_info={
    10 'platformName':'android',
    11 'deviceName':'215a343c0804',
    12 'platformVersion':'7.1.2',
    13 'appPackage':'包名',
    14 'appActivity':'启动Activity'
    15 
    16 }
    17 
    18 drive=webdriver.Remote('http://127.0.0.1:4723/wd/hub',pack_info);
    19 
    20 #drive=webdriver.Remote('http://127.0.0.1:4723/wd/hub',pack_info);
    21 
    22 #
    23 
    24 #休眠5s
    25 time.sleep(5);
    26 #点击对应的元素
    27 28 drive.find_element_by_id('包名:id/iv_download_img').click()----加这一句就行
    29 print('执行成功')

    产生了一个问题:

    ①、运行后,appium可以正常运行,并开启APP,但是无法进行点击事件,事实上,并没有任何报错,纳闷中

     解决方式尝试1:开发者模式中,打开允许模拟点击,完美解决

    2、扩展-使用其他的定位元素的办法

    ①、在uiautomator中获取元素id(常用):.find_element_by_id('包名:id/iv_download_img').click()---->在uiautomator中的resource-id中直接复制即可

    ②、使用使用xpath获取元素:

    1)如果页面中text是唯一的,那么就通过text文本获取(格式://*[@text='掃一掃',必须要有斜杠和一个※号)(很少用):find_element_by_xpath("//*[@text='掃一掃']").click();------->根据tex寻找,也是在uiautomator中的元素text中直接复制即可

    2)同上,也可以用uiautomator中的content-desc文本获取,正常情况下,它的内容和text是一样的,很多时候,它是空的,用法也是和text一样find_element_by_xpath("//*[@content-desc='掃一掃']").click();

    2)如果页面中class是唯一的,那么就通过class获取(格式://classname,必须要有两个斜杠)(很少用):drive.find_element_by_xpath('//android.widget.TextView').click();----->这个运行无结果,无报错,因为页面中这个class不是唯一的,所以不知道应该要取哪一个。

    3)contains模糊匹配(类似模糊匹配,这个通常用于要定位一组的元素,而不是单个元素时,效率尤其突出)

    4)层级定位--父定子位(很有用)

    参考

    https://www.cnblogs.com/syw20170419/p/8192629.html

  • 相关阅读:
    Leetcode 第 210 场周赛
    Leetcode 834. 树中距离之和
    Leetcode 第36场双周赛
    力扣 第 208 场周赛
    cf 665 DMaximum Distributed Tree
    Codeforces Round #672 (Div. 2) A~D
    Educational Codeforces Round 95 (Rated for Div. 2) A~D
    CCF CSP 201612-3 权限查询
    Codeforces Round #669 (Div. 2) A~C
    201703-4 地铁修建
  • 原文地址:https://www.cnblogs.com/shenyexiaoqingxin/p/10469908.html
Copyright © 2011-2022 走看看