运行任务没问题,测试效果不好,这是测试对象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)
优化下代码,测试效果好一点,缩短任务时间,多任务并发
建议使用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')))