m0_72183621 2022-08-16 19:36 采纳率: 21.7%
浏览 39
已结题

uiautomator2自动化测试,怎么提高,缩短任务时间

问题遇到的现象和发生背景

运行任务没问题,测试效果不好,这是测试对象m.996box.com

问题相关代码,请勿粘贴截图

import datetime
import time

import uiautomator2 as u2
d = u2.connect('')

d(text="996传奇盒子").click()
d.implicitly_wait(5.5)
d(resourceId="com.xqhy.legendbox:id/iv_search").click()
d.send_keys("百战传奇", clear=True)
d(resourceId="com.xqhy.legendbox:id/tv_search_hint_word").click()
d(resourceId="com.xqhy.legendbox:id/iv_game_cover").click()
d.implicitly_wait(5.5)


def legendbox():
    try:
        d(resourceId="com.xqhy.legendbox:id/tv_transaction").click()
        d.xpath('//*[@resource-id="com.xqhy.legendbox:id/rv_transcation"]/android.view.ViewGroup[1]').click()
        d(resourceId="com.xqhy.legendbox:id/tv_commit_buy").click()
        text = d.xpath('//*[@resource-id="com.xqhy.legendbox:id/tv_transcation_name"]').get_text()
        print('抢号成功',datetime.datetime.now(), text,)

        d.xpath('//*[@resource-id="com.xqhy.legendbox:id/btn_pay"]').click()
        d.xpath('//*[@resource-id="com.android.systemui:id/back"]').click()
        d(resourceId="com.alipay.mobile.antui:id/cancel").click()
        d.xpath('//*[@resource-id="com.alipay.mobile.antui:id/ensure"]').click()
        d.xpath('//*[@resource-id="com.android.systemui:id/back"]').click()
        d.xpath('//*[@resource-id="com.android.systemui:id/back"]').click()
        d.xpath('//*[@resource-id="com.android.systemui:id/back"]').click()

    except:
        d.xpath('//*[@resource-id="com.android.systemui:id/back"]').click()
        d.xpath('//*[@resource-id="com.android.systemui:id/back"]').click()

i = 0
while True:
    print('-'*50)
    i += 1
    t1 = time.time()
    legendbox()
    t2 = time.time()
    print('执行次数:',i)
    print('运行时间:',t2-t1)
    print('-'*50)
    time.sleep(3.5)


运行结果及报错内容

优化下代码,测试效果好一点,缩短任务时间,多任务并发

  • 写回答

1条回答 默认 最新

  • 云梦丶 2022-08-17 14:36
    关注

    建议使用appnium运行,使用全局隐式等待替换强制等待

    from selenium.webdriver.support.wait import WebDriverWait
    
    # WebDriverWait(driver, timeout):timeout-最大等待时间,默认以0.5秒的速度扫描元素
    self.wait = WebDriverWait(self.driver, 30)
    
    # 等待搜索元素
    self.wait.until(expected_conditions.visibility_of_element_located((By.ID, 'key'))) 
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月18日
  • 修改了问题 8月16日
  • 赞助了问题酬金21元 8月16日
  • 赞助了问题酬金9元 8月16日
  • 展开全部