Tate 发布的帖子
在华为荣耀10手机上运行了一段时间无障碍后,能获取控件但无法点击,重启手机后才正常
比如以下的代码,重启后就正常了:
// 在微信页面
let plusButton = id("com.tencent.mm:id/plus_icon").findOne(2000);
if(!plusButton){
// 如果微信首页部分上拉可能导致搜索按钮id变动
plusButton = id("com.tencent.mm:id/jga").findOne(1000);
}
console.log(plusButton); // 该对象存在,有输出
console.log(click(plusButton.bounds().centerX(),plusButton.bounds().centerY())); // 点击没有效果,并且返回false (已经开启了手机的点击显示没看到有点击)
back(); // 返回键且正常,可以生效
可能是什么原因呢?有遇到类似问题的同学吗?
小米手机miui系统运行以下代码,已经确认是能定位到消息中的小程序链接并点击的,但是点击就是没有生效,只有长按longClick会有效果?这个可能是什么问题呢?有大佬可以尝试下看有什么解决思路吗?
发现小程序链接 const sendUrl = '#小程序://拼多多/2qrbrpR2aF24qVw'
无法点击,但是 换成 const sendUrl = 'https://www.baidu.com'
就可以点击?难道是微信做了什么判断限制?还有什么思路可以自动打开小程序吗?
/**
* 点击父级按钮
* @param {*} item
*/
function clickParent( item ){
let parent = item.parent();
for(let i = 0;i < 10;i++){
console.log(parent)
if(parent.clickable() || true){
parent.click()
click(parent.bounds().centerX(),parent.bounds().centerY())
break;
}else{
parent = parent.parent()
}
}
}
launchApp("微信");
sleep(1000)
// 点击右上角更多加号按钮
let clickBtn = id("com.tencent.mm:id/meb").findOne(2000)
if(clickBtn){
console.log('检测到搜索按钮');
click(clickBtn.bounds().centerX(),clickBtn.bounds().centerY())
sleep(500)
setText("文件传输助手")
sleep(500)
// 点击'文件传输助手'功能
let fileTransfer = id("com.tencent.mm:id/odf").text('文件传输助手').findOne()
clickParent(fileTransfer)
sleep(500)
const sendUrl = '#小程序://拼多多/2qrbrpR2aF24qVw'
setText(sendUrl)
click('发送')
sleep(500)
// 获取到发出去的链接消息控件,明确是可以获取到的
let message = text(sendUrl).findOne()
// ------------------ 以上代码都是执行正常的,以下代码点击不生效
message.click() // 明确有点击到,也验证了明确返回true,就是没有反应,并不会跳转百度
sleep(1000);
click(message.bounds().centerX(),message.bounds().centerY()) ; // 同样有点击到,但没有反应
sleep(1000);
press(message.bounds().centerX(),message.bounds().centerY(),1000); // 同样有点击到,但没有反应
sleep(1000);
message.longClick() ; // 长按有效果,会弹出菜单
}
为什么不能呢?不是正常的打开微信,点击按钮这些都可以吗?比如以下代码是可以正常运行的
/**
* 点击父级按钮
* @param {*} item
*/
function clickParent( item ){
let parent = item.parent();
for(let i = 0;i < 10;i++){
console.log(parent)
if(parent.clickable() || true){
parent.click()
click(parent.bounds().centerX(),parent.bounds().centerY())
break;
}else{
parent = parent.parent()
}
}
}
launchApp("微信");
sleep(1000)
// 点击右上角更多加号按钮
let clickBtn = id("com.tencent.mm:id/meb").findOne(2000)
if(clickBtn){
console.log('检测到搜索按钮');
click(clickBtn.bounds().centerX(),clickBtn.bounds().centerY())
sleep(500)
setText("文件传输助手")
sleep(500)
// 点击'文件传输助手'功能
let fileTransfer = id("com.tencent.mm:id/odf").text('文件传输助手').findOne()
clickParent(fileTransfer)
sleep(500)
setText('来自Autox.js的操作,hello!')
click('发送')
}