写一段快手可执行脚本,运行脚本自动打开快手app然后点开首页在5秒下滑一下拖动页面这样可以刷新页面

HAMI_6368437990 · 3 小时前
第 1 条补充
·
1 小时前

打开快手后应该是找到快手页面的首页两个字点击进去然后在等待10秒然后滑动一次视频,一直循序这一步等待十秒滑动下一个视频

第 2 条补充
·
1 小时前

给出完整的代码

回答

Hamibot AI
1
· 3 小时前

以下是一段快手自动化的Hamibot脚本,可以实现自动打开快手APP、进入首页并每5秒下滑刷新页面的功能:

// 文档地址 https://docs.hamibot.com/

// 打开快手APP
app.launch("com.smile.gifmaker");
sleep(3000); // 等待APP启动

// 等待进入首页,通过"首页"文字判断
text("首页").waitFor();

// 循环执行,每5秒下滑一次(刷新页面)
while (true) {
    // 尝试找到可滑动的区域
    var scrollableArea;
    
    // 尝试通过多种方式定位可滑动区域
    // 1. 通过id定位(快手常用id)
    scrollableArea = id("com.smile.gifmaker:id/view_pager").scrollable(true).findOne(2000);
    
    // 2. 通过类名定位(ViewPager或RecyclerView)
    if (!scrollableArea) {
        scrollableArea = className("androidx.viewpager.widget.ViewPager").scrollable(true).findOne(2000);
    }
    if (!scrollableArea) {
        scrollableArea = className("androidx.recyclerview.widget.RecyclerView").scrollable(true).findOne(2000);
    }
    
    // 3. 通用选择器
    if (!scrollableArea) {
        scrollableArea = className("android.view.ViewGroup").scrollable(true).findOne(2000);
    }
    
    if (scrollableArea) {
        // 向下滑动刷新页面
        scrollableArea.scrollForward();
        log("已执行下滑刷新操作");
    } else {
        log("未找到可滑动区域,尝试重新进入首页");
        // 尝试返回首页
        back();
        sleep(1000);
        // 点击首页按钮
        text("首页").findOne().click();
        sleep(2000);
    }
    
    // 等待5秒
    sleep(5000);
}

使用说明:

  1. 脚本会先启动快手APP,等待3秒让APP加载完成
  2. 通过"首页"文字确认已进入快手首页
  3. 循环查找可滑动区域,尝试了多种定位方式(id、类名等)
  4. 找到可滑动区域后执行下滑操作(scrollForward()
  5. 每次操作后等待5秒,继续下一轮刷新

注意事项:

  • 由于不同版本的快手APP界面可能有差异,如果脚本无法正常工作,你可以使用Hamibot的悬浮窗"布局分析"功能,点击快手首页的视频区域,查看具体的控件信息,然后修改脚本中的选择器
  • 如果发现是向上滑动加载更多内容(而非下滑刷新),可将scrollForward()改为scrollBackward()
  • 首次使用时建议先在脚本控制台运行,观察执行效果
  • 请勿在快手进行过于频繁的操作,以免被系统判定为异常行为

如果脚本运行有问题,建议先使用Hamibot的悬浮窗"布局分析"功能确认快手首页可滑动区域的具体属性。


补充回答 1

文档地址 https://docs.hamibot.com/

这是实现快手自动化观看视频的Hamibot脚本:

// 启动快手应用
app.launch("com.smile.gifmaker");

// 等待应用启动
sleep(3000);

// 点击首页按钮
var homeBtn = text("首页").findOne(5000);
if (homeBtn) {
    homeBtn.click();
    toast("已点击首页按钮");
} else {
    toast("未找到首页按钮,继续执行");
}

// 循环观看视频
while (true) {
    // 等待10秒
    sleep(10000);
    
    // 从屏幕底部向上滑动(切换视频)
    // (x1, y1)是起始坐标,(x2, y2)是结束坐标
    // 根据屏幕尺寸调整坐标,这里假设是常见的手机屏幕
    swipe(500, 1800, 500, 800, 500);
    
    toast("已滑动到下一个视频");
}

几点说明:

  1. 脚本首先启动快手应用,等待3秒让应用加载
  2. 尝试查找"首页"文字并点击,如果找不到会继续执行
  3. 进入无限循环,每次等待10秒后执行一次向上滑动
  4. 滑动坐标可以根据你的设备屏幕尺寸调整:
    • 前两个参数(500, 1800)是滑动起点(屏幕底部)
    • 中间两个参数(500, 800)是滑动终点(屏幕中部)
    • 最后一个参数500是滑动持续时间(毫秒)

如果快手界面有变化,可能需要调整:

  • 查找"首页"的方式(可以改用id或坐标点击)
  • 滑动的坐标值(不同分辨率手机需要调整)

你可以先运行脚本,如果找不到"首页"按钮,可以使用Hamibot的"悬浮窗"功能查看元素信息,然后修改定位方式。


补充回答 2

文档地址 https://docs.hamibot.com/

// 配置参数
var CONFIG = {
    appPackage: "com.smile.gifmaker",  // 快手应用包名
    videoWatchTime: 10000,             // 观看视频时间(毫秒)
    maxVideos: 50,                     // 最大观看视频数量
    swipeDuration: 500,                // 滑动持续时间(毫秒)
    homeCheckTimeout: 5000             // 查找首页按钮的超时时间
};

/**
 * 点击首页按钮 - 尝试多种方式定位
 */
function clickHomePage() {
    // 方式1:通过文字"首页"查找
    var homeBtn = text("首页").findOne(2000);
    if (homeBtn) {
        homeBtn.click();
        toastLog("已通过文字'首页'点击");
        return true;
    }
    
    // 方式2:通过资源ID查找(常见ID,可根据实际情况调整)
    homeBtn = id("com.smile.gifmaker:id/bottom_tab_icon").desc("首页").findOne(2000);
    if (homeBtn) {
        homeBtn.click();
        toastLog("已通过ID找到首页按钮并点击");
        return true;
    }
    
    // 方式3:通过坐标点击(如果上述方法都不行)
    var width = device.width;
    var height = device.height;
    click(width * 0.5, height - 100);
    toastLog("已通过坐标点击底部导航栏");
    return true;
}

/**
 * 滑动到下一个视频
 */
function swipeToNextVideo() {
    // 获取屏幕尺寸
    var width = device.width;
    var height = device.height;
    
    // 计算滑动坐标(从屏幕底部向上滑动)
    var startX = width * 0.5;
    var startY = height * 0.85;
    var endX = width * 0.5;
    var endY = height * 0.25;
    
    swipe(startX, startY, endX, endY, CONFIG.swipeDuration);
    toastLog("已滑动到下一个视频");
}

/**
 * 检查是否在快手应用中
 */
function isKuaishouApp() {
    var currentPackage = currentPackage();
    return currentPackage === CONFIG.appPackage;
}

/**
 * 主函数
 */
function main() {
    // 启动快手应用
    if (!app.launch(CONFIG.appPackage)) {
        toastLog("无法启动快手应用,请检查是否已安装");
        return;
    }
    
    toastLog("快手应用已启动,等待加载...");
    sleep(3000); // 等待应用加载
    
    // 确保在快手应用中
    if (!isKuaishouApp()) {
        toastLog("未在快手应用中,可能启动失败");
        return;
    }
    
    // 尝试点击首页
    clickHomePage();
    sleep(2000); // 等待页面切换
    
    // 开始循环观看视频
    var videoCount = 0;
    while (videoCount < CONFIG.maxVideos) {
        videoCount++;
        toastLog("正在观看第 " + videoCount + " 个视频");
        
        // 等待指定时间
        sleep(CONFIG.videoWatchTime);
        
        // 检查是否仍在快手应用中
        if (!isKuaishouApp()) {
            toastLog("已离开快手应用,尝试重新进入");
            app.launch(CONFIG.appPackage);
            sleep(3000);
            clickHomePage();
            sleep(2000);
        }
        
        // 滑动到下一个视频
        swipeToNextVideo();
        
        // 短暂等待滑动完成
        sleep(500);
    }
    
    toastLog("已完成 " + videoCount + " 个视频的观看,脚本结束");
}

// 开始执行
auto.waitFor();
main();
ℹ️ 本回答由 AI 生成,内容仅供参考