• Appium之长按元素


    app中长按操作是经常遇到的场景,如微信中长按某一对话框,则可删除该对话框;如淘宝-》购物车中长按商品信息,则可删除该商品等。

    长按某个元素或者某个点,我们可以使用TouchAction类中提供的 long_press 函数操作。

    from appium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from appium.webdriver.common.touch_action import TouchAction
    
    desired_caps = {
        'autoLaunch': 'True',
        'deviceName': 'Honor10.0',
        'platformVersion': '10.0',
        'platformName': 'Android',
        'noReset': 'True',
        'appPackage': "com.taobao.taobao",
        'appActivity': "com.taobao.tao.welcome.Welcome",
    }
    
    driver = webdriver.Remote('127.0.0.1:4723/wd/hub', desired_caps)
    # 确认已进入淘宝app主页
    driver.wait_activity("com.taobao.tao.TBMainActivity", 15)
    print("已进入淘宝主页!")
    # 长按音量键+
    driver.press_keycode(24)
    print("增大音量!")
    
    # 切换至购物车(description属性定位),长按商品,再删除该商品
    driver.find_element_by_android_uiautomator('new UiSelector().description("购物车")').click()
    
    # 通过是否可查找到元素loc_goods,判断购物车页面是否有添加有商品
    loc_goods = ("xpath", '//*[@resource-id="com.taobao.taobao:id/cart_recycler_view"]/android.widget.FrameLayout[5]')
    try:
        ele1 = WebDriverWait(driver, 10, 0.5).until(EC.presence_of_element_located(loc_goods))
    except Exception as e:
        print("购物车竟然是空的!")
        raise e
    else:
        ele2 = driver.find_element_by_android_uiautomator('new UiSelector().description("功夫熊猫 可爱大熊猫 diy数字油画手绘填色装饰挂画 画画油彩画")')
        TouchAction(driver).long_press(ele2).perform()
        loc_dels = ("xpath", '//*[@text="删 除"]')
        ele3 = WebDriverWait(driver, 10, 0.5).until(EC.presence_of_element_located(loc_dels))
        ele3.click()
        print("已将购物车第一件商品删除!")


    运行结果:
    已进入淘宝主页!
    增大音量!
    已将购物车第一件商品删除!
  • 相关阅读:
    java之SFTP上传下载
    java之FTP上传下载
    JUnit单元测试%MODULE_WORKING_DIR%' does not exist
    MySQL 在线DDL "gh-ost"
    MySQL 主从复制错误1837
    <高性能MySQL> 阅读笔记
    Redis cluster 4.0.9 迁槽不影响读写
    MySQL left join 用法与实例
    Linux 日期 date +%F-%T-%N
    MySQL 使用infobin查找binlog中大事务
  • 原文地址:https://www.cnblogs.com/Maruying/p/13632337.html
Copyright © 2020-2023  润新知