每日10行代码38:appium初步使用:稳定性是个问题

本文介绍了一次使用Appium进行自动化测试的实际案例。通过具体代码实现B站上的搜索功能,并打印出搜索结果中的视频标题。讨论了测试过程中遇到的问题及可能的原因,包括Appium框架自身的问题和B站服务器的限制。
摘要由CSDN通过智能技术生成

今天尝试使用了下appium,使用的是白夜黑羽的教程。代码如下,功能是在B站上搜索手工耿,并把他的视频标题都打印出来。

from appium import webdriver
from appium.webdriver.extensions.android.nativekey import AndroidKey
import time

desired_caps = {
  'platformName': 'Android', # 被测手机是安卓
  'platformVersion': '8', # 手机安卓版本
  'deviceName': 'xxx', # 设备名,安卓手机可以随意填写
  'appPackage': 'tv.danmaku.bili', # 启动APP Package名称
  'appActivity': '.ui.splash.SplashActivity', # 启动Activity名称
  'unicodeKeyboard': True, # 使用自带输入法,输入中文时填True
  'resetKeyboard': True, # 执行完程序恢复原来输入法
  'noReset': True,       # 不要重置App
  'newCommandTimeout': 6000,
  'automationName' : 'UiAutomator2'
  # 'app': r'd:\apk\bili.apk',
}

# 连接Appium Server,初始化自动化环境
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

# 设置缺省等待时间
driver.implicitly_wait(5)

# 如果有`青少年保护`界面,点击`我知道了`
#iknow = driver.find_elements_by_id("text3")
#if iknow:
#    iknow.click()

time.sleep(10)
# 根据id定位搜索位置框,点击
driver.find_element_by_id("expand_search").click()

# 根据id定位搜索输入框,点击
sbox = driver.find_element_by_id('search_src_text')
sbox.send_keys('手工耿')
# 输入回车键,确定搜索
time.sleep(5)
driver.press_keycode(AndroidKey.ENTER)

# 选择(定位)所有视频标题
eles = driver.find_elements_by_id("title")

for ele in eles:
    # 打印标题
    print(ele.text)

input('**** Press to quit..')
driver.quit()

经过测试,发现只有少于50%的几率可以运行成功。还好我多试了几次,不然我会以为程序哪里有问题。至于为什么老是运行失败,我觉得一是因为appium本身框架的原因,appium封装太多,内部出问题的概率就会变大;二是因为B站的服务器有限制措施。

下一步,我试下原生的adb命令来操作app,同时学习下appium,看看有没有方法提高稳定性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值