1. # coding:utf-8
  2.  
  3. """
    参考博客链接:https://www.cnblogs.com/yoyoketang/p/7843819.html
    """
  4.  
  5. from appium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from time import sleep
    desired_caps = {
    'platformName': 'Android',
    'deviceName': '127.0.0.1:62001',
    'platformVersion': '4.4.2',
    'appPackage': 'com.baidu.yuedu',
    'appActivity': 'com.baidu.yuedu.splash.SplashActivity',
    'noReset': 'true',
    'resetKeyboard': 'true',
    'unicodeKeyboard': 'true'
    }
    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
  6.  
  7. # 等主页面activity出现
    driver.wait_activity(".base.ui.MainActivity", 10)
  8.  
  9. # 1.id+text
    id_text = 'resourceId("com.baidu.yuedu:id/webbooktitle").text("小说")'
    driver.find_element_by_android_uiautomator(id_text).click()
  10.  
  11. sleep(2)
    # 2.class+text
    class_text = 'className("android.widget.TextView").text("图书")'
    driver.find_element_by_android_uiautomator(class_text).click()
  12.  
  13. sleep(2)
    # 父子关系childSelector
    son = 'resourceId("com.baidu.yuedu:id/rl_tabs").childSelector(text("小说"))'
    driver.find_element_by_android_uiautomator(son).click()
  14.  
  15. sleep(2)
    # 兄弟关系fromParent
    brother = 'resourceId("com.baidu.yuedu:id/lefttitle").fromParent(text("图书"))'
    driver.find_element_by_android_uiautomator(brother).click()
  16.  
  17. sleep(2)
    # resourceIdMatches(".*xxx$")
    idMatches = 'resourceIdMatches(".*id/lefttitle$")'
    driver.find_element_by_android_uiautomator(idMatches).click()
  18.  
  19. sleep(2)
    # classNameMatches(".*xxx$")
    classMatches = 'classNameMatches(".*TextView$").text("小说")'
    driver.find_element_by_android_uiautomator(classMatches).click()

Appium + python - automator定位升级版操作的更多相关文章

  1. Appium + python - automator定位操作

    # coding:utf-8from appium import webdriverfrom time import sleep desired_caps = { 'platformName': 'A ...

  2. Appium + python - long_press定位操作实例

    from appium.webdriver.common.touch_action import TouchActionfrom appium import webdriverimport timei ...

  3. Appium + Python -------------元素定位

    说在前面 1.https://github.com/appium/python-client/tree/master/test  里面有一些test ,可以看看,研究研究 2.学会使用 uiautom ...

  4. Appium + python - swipe滑屏操作实例

    方法一: from appium import webdriverfrom time import sleep descred_caps = { "platformName":&q ...

  5. Appium + python - get_attribute获取value操作

    from appium import webdriverfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.w ...

  6. Appium + python - weixin公众号操作

    from appium import webdriverfrom time import sleep desired_caps = { "platformName":"A ...

  7. appium+Python 启动app(一)

    当我们appium和Python环境都配置好了,如何启动我们第一个app呢?下面介绍appium+Python启动app的操作步骤,为了能够详细查看,我们这里使用夜游神模拟器进行示范. 测试项目:QQ ...

  8. Appium+python自动化4-元素定位uiautomatorviewer

    前言 环境搭建好了,下一步元素定位,元素定位本篇主要介绍如何使用uiautomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作. uiautomatorviewer是androi ...

  9. appium+python自动化43-微信公众号webview操作

    前言 上一篇已经解决切换到微信公众号的webview上了,但是定位webview上元素的时候一直提示找不到,打印page_source也找不到页面上的元素,这个问题困扰了一整天,还好最后找到了原因, ...

随机推荐

  1. codeforces_734C_二分

    C. Anton and Making Potions time limit per test 4 seconds memory limit per test 256 megabytes input ...

  2. PHP操作Redis相关函数

    String数据类型 $redis->set('key','TK'); $redis->set('number','1'); //设置值 $redis->setex('key',5, ...

  3. CAD在网页中返回当前图纸的最小外包矩形框

    主要用到函数说明: _DMxDrawX::GetMcDbDatabaseBound 返回当前图纸的最小外包矩形框,详细说明如下: 参数 说明 DOUBLE* pLbx 返回最小外包矩形框左下角X值 D ...

  4. HDU114 - Piggy-Bank 【完全背包】

    在 ACM 能够开展之前,必须准备预算,并获得必要的财力支持.该活动的主要收入来自于 Irreversibly Bound Money (IBM).思路很简单.任何时候,某位 ACM 会员有少量的钱时 ...

  5. Linux之ssh中XSHELL无法连接解决方案

    查漏补缺,理解概念,及时总结,互相交流,欢迎拍砖. 目前遇到的大致有以下几个问题分类: 网络是否连通.防火墙策略.DNS解析问题.端口是否开启.selinux是否开启-- 1.网络连通: 是否在同一网 ...

  6. js事件委托或事件代理

    起因: 1.这是前端面试的经典题型,要去找工作的小伙伴看看还是有帮助的: 2.其实我一直都没弄明白,写这个一是为了备忘,二是给其他的知其然不知其所以然的小伙伴们以参考: 概述: 那什么叫事件委托呢?它 ...

  7. 2.1.5、SparkEnv中创建MapOutputTracker

    SparkEnv中创建MapOutputTracker def registerOrLookupEndpoint( name: String, endpointCreator: => RpcEn ...

  8. BZOJ1192 鬼谷子的钱袋

    没想到这是一道省选题... /* BZOJ1192 */ #include <cstdio> int main() { ; scanf("%d",&m); ;m ...

  9. assign retain 和copy的区别

    assign 对基础数据类型 (NSInteger,CGFloat)和C数据类型(int, float, double, char)等 等. 此标记说明设置器直接进⾏行赋值,这也是默认值.在使⽤用垃圾 ...

  10. 使用Java VisualVM配置Java应用程序/分析CPU或内存的使用情况(转)

    以下内容翻译自(机翻):https://baptiste-wicht.com/posts/2010/07/profile-applications-java-visualvm.html 当您需要发现应 ...