ios 如果控件是 button 的话,被选中状态,该控件的 value 是会变成 1 的 可以根据这个属性来判断是否被选中
你换啥定位工具也没有,本质上都是调的 wda 接口返回的页面布局,你现在这样就可以了。这是没有办法的办法 我之前就是把用例抽离出来针对 iOS 单独运行的,每次执行的时候重启一下。至于你说的 Android 没问题,Android 肯定没问题。。。因为这个问题和 appium 没关系,是系统机制的问题。
你更新 wda 也没用,这个就是苹果的机制问题,想要解决 就需要重启 wda,重新获取页面,不然你执行脚本也会是一样的问题,因为这个不是没有解析出来,而是从 wda 获取到的东西就是这样的。
可能需要你重启一下 wda
wda 本身的问题 当页面只是局部刷新的时候 wda 并没有将 tree 进行完全刷新,只是将新增的布局追加进当前这个树了,之前碰到过这种问题,我的解决方案是,重新链接一下 wda 生成一个新的 session id 重新获取
xctest
relay
这两个命令 一个用来启动 wda,一个用来转发端口
flutter 应用就这样
selenium 就可以
driver.get_log("performance") 去看看 这个方法怎么使用就行了
别用 wdaproxy 这个命令 这个命令有点问题,基本上启动 30s 后就会重启一下,单独使用启动 wda 和端口转发的命令就行了,就不会有断开的问题了
你这个图床有防盗链吧
微信有一个搜一搜的空白 web 页面,你切换到你自己那个 web 页面就行了
可以 这种方案最直接,
那你用什么都没用,获取到的都会是这样的布局,所有的 flutter 项目都是这样的,给你说两种方案吧,一种是图像识别,一种是自己去计算出来这个控件的位置去点击
你这个项目是 flutter 的吧
看了一眼华为的快应用,大概原理就是 所有的快应用都是嵌套在一个包名为 com.huawei.fastapp 的应用的 webview 中,想做的两种办法,一种是图像识别,一种是想办法把那个 app 的 webview 的 debug 模式打开,就能用 appium+webdriver 做了
在节点机器上起一个服务 把操作原生窗口的方法封装成服务,然后需要的时候 调用对应的节点机上的服务就行了
开源的解决方案已经有了 现在 已经可以和 iOS17 建立通信了,已经有方案了
别用最新版的 他最新版的那个 pip 下载有问题,去下载一个历史版本用,这个 bug 我记得 好像有差不多快 1 年了 居然一直没有改。。。。。
不是暂停了 是如果当前页面是动态的 appium 默认会有一个 waitForIdleTimeout 时间 我记得默认的应该挺长时间的,你把这个参数设置小一点就行了
到上限了 现在钉钉机器人是套餐,每月发送有上限,超过上限需要购买才行
仅从你的报错提示来看 是提示包里面没有 put 这个方法
这样的话 你需要自己在写一个脚本来整合这些日志,allure generate 这个命令的本质就是根据固定格式的 json 文件或者 xml 文件来生成 html ,如果你对顺序什么的没有要求,把你所有机器执行的结果传回 master 后放到一个文件夹下面(是把文件放在一个文件夹下面,不是文件夹),然后生成 html 就是全部的了,但是 case 的顺序可能会是随机的,如果有别的要求 就自己写脚本改造一下 pytest 生成的日志就可以了
你的多机运行有问题吧,使用 pytest 多进程执行 只是执行 case 的机器可能是其他的机器,但是最后的日志还是生成在你执行 pytest 的那台机器上的,只会有一份日志
可以的 参数配置一下 binary_location 指定一下启动的 exe 文件就可以了,驱动的话 按照你要用的浏览器版本 去下载对应版本的 driver 就行了
这不是取得最后一个吗