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("已將購物車第一件商品刪除!")


運行結果:
已進入淘寶主頁!
增大音量!
已將購物車第一件商品刪除!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM