@xiaoxuxu 。没有添加 chromedriver 环境变量和启动它,appium 会自己启动它。微信要打开 Inspector 调试,下面是我的全部代码
from appium import webdriver
import time
desired_caps = {'platformName': 'Android',
'platformVersion': '5.1.1',
'deviceName': '8692_A00',
'app': '',
'appPackage': 'com.tencent.mm',
'appActivity':'.ui.LauncherUI',
'unicodeKeyboard': True,
'resetKeyboard': True,
'chromeOptions': {'androidProcess': 'com.tencent.mm:tools'}
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.implicitly_wait(10)
driver.find_element_by_id('com.tencent.mm:id/bm6').click()
driver.find_element_by_id('com.tencent.mm:id/adq').click()
driver.find_element_by_name('佣金提现').click()
time.sleep(3)
print(driver.contexts)
driver.switch_to.context('WEBVIEW_com.tencent.mm:tools') # 切换进入 webview
driver.find_element_by_xpath('/html/body/section/section/div/div[3]/ul/li[1]/a').click()
driver.quit()
@weijiatiancai ,driver.contexts print 出来的是 WEBVIEW_com.tencent.mm:tools,所以配置'chromeOptions': {
'androidProcess' : 'com.tencent.mm:tools',切换进入也是 switch_to.context('WEBVIEW_com.tencent.mm:tools')。
@weijiatiancai ,我的成功运行,调试过程中也出现过你这个错误。从报错来看,应该是没有切换到 webview,检查 chromeOptions 配置,和 switch_to.context 方法有没有问题 。
@yanzilove ,我和你一样 的问题,解决了吗?
@zhangzhao_lenovo zhang,请问你开一个线程用的什么方法,我用 threading.Timer 方法,可以实现 ,但是有个问题,这个线程偶尔无法关闭 ,这是为什么呢?关闭方法如下,
for i in threading.enumerate():
if type(i) == threading.Timer:
i.cancel()
感谢提供思路 。我看到你的 appium 自动化测试,监控性能放在每个 case 执行中,我有个想法,不依赖于 case,做一个定时器,自动化测试的同时,每隔 5s 就获取一次性能数据。这样是不是更好?
@joke 什么时候兼容 python 3,期待大神多发帖,多分享
@lose,新人求教,关于监控性能,fps 这个,我用 windows,输入 adb shell dumpsys gfxinfo ‘包名’ | findstr -A 128 'Execute' | findstr -v '[a-Z]',没有结果,只能用 adb shell dumpsys gfxinfo ‘包名’。然后关于帧率的计算,看你的报告结果是 100 多,你这个数字的单位是什么。我在网上查说正常情况下帧率 16ms,也就是 60 帧/秒