Appium之长按元素

摘要:
应用程序中的长按操作是经常遇到的情况。例如,长按微信中的对话框可以删除对话框;如果淘宝-˃长按购物车中的产品信息,则可以删除产品。长按一个元素或一个点,我们可以使用TouchAction类中提供的长按功能操作。来自应用程序从硒导入Web驱动程序.webdriver.support.uiimportWebDriverWaitfromseleniu

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("已将购物车第一件商品删除!")


运行结果:
已进入淘宝主页!
增大音量!
已将购物车第一件商品删除!

免责声明:文章转载自《Appium之长按元素》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇转载:win10 下安装Oracle 11g(问题:环境不满足最低要求)Jenkins Kubernetes Slave 调度效率优化小记下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Appium(四):真实机第一个appium程序、模拟器第一个appium程序、查看元素

1. 真实机第一个appium程序 学完了前面的知识,也将环境搭建好了,接下来我们就正式开始appium的学习了。 在做app自动化的时候,我们肯定是针对某个产品、某个软件进行测试,那么我们一定是先让模拟器或真机帮我们打开这款软件才可以。所以接下来要学的就是如何打开某个应用程序。 启动步骤: USB连接手机,开启调试模式 打开appium工具 创建pyth...

突破网站对selenium的屏蔽

使用selenium模拟浏览器进行数据抓取无疑是当下最通用的数据采集方案,它通吃各种数据加载方式,能够绕过客户JS加密,绕过爬虫检测,绕过签名机制。它的应用,使得许多网站的反采集策略形同虚设。由于selenium不会在HTTP请求数据中留下指纹,因此无法被网站直接识别和拦截。 这是不是就意味着selenium真的就无法被网站屏蔽了呢?非也。selenium...

python购物车程序

购物车程序主要实现的功能如下      1. 启动程序后,用户通过账号密码登录,然后打印商品列表。 2. 允许用户根据商品编号购买商品。 3. 用户选择商品后,检测余额是否足够,够就直接扣款,不够就提醒充值。 4. 可随时退出,退出时,打印已购买的商品和余额。 插入一张图,这是理想的功能,下面的代码并没有实现这么多功能,需要加上登陆小程序。以后有时间我会实...

UI自动化学习之坑

1.  解决: 设置 - 更多设置 - 开发者选项 - USB调试(安全设置)- 开启 2.  解决:开发者选项中打开allow install via USB 3.Appium链接手机出错: 解决办法:(目前仅用了这2个手机,其他遇到再说) 小米:在开发者选项里,把“USB调试(安全设置)"打开即可。  允许USB调试修改权限或模拟点击 oppo:...

appium+Python真机运行测试demo的方法

appium+Python真机运行测试demo的方法 一,    打开手机的USB调试模式 二,    连接手机到电脑    将手机用数据线连接到电脑,并授权USB调试模式。查看连接的效果,在cmd下运行命令:adb devices查看UDID,如下图所示: 如果有输出,就表示连接成功。 三,    启动Appium服务 方法一:cmd命令行启动    ...

Python selenium 延时的几种方法

解决网页加载缓慢的几种方法: 一、显性等待WebDriverWait,配合该类的until()和until_not()方法,就能够根据判断条件而进行灵活地等待 1 from selenium import webdriver 2 from selenium.webdriver.support.wait import WebDriverWait 3 4...