You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Webdriver IO执行click时报错Cannot read properties of undefined (reading 'click')如何解决

报错原因

该报错说明你调用click方法的目标对象element[1]为undefined,本质是通过$$("input[type='checkbox']")获取的元素数组为空或者长度不足2,无法命中索引为1的元素。

核心问题

Webdriver IO v8及以上版本默认使用异步模式,所有内置API调用都会返回Promise,必须添加await等待执行完成,否则代码执行顺序会错乱:页面还没完成加载就已经执行元素选择逻辑,自然无法拿到对应元素。你的代码中browser.url、browser.pause、browser.saveScreenshot都没有添加await。

修复后的代码

it('Checkbox', async () => {
    // 等待页面加载完成
    await browser.url('https://rahulshettyacademy.com/AutomationPractice/')
    const element = await $$("input[type='checkbox']")
    // 增加长度判断,避免索引越界报错
    if (element.length >= 2) {
        await browser.pause(3000)
        await element[1].click()
        console.log(await element[1].isSelected())
    } else {
        console.log('获取到的复选框元素数量不足,当前数量:', element.length)
    }
    // 等待截图执行完成
    await browser.saveScreenshot('screenshot.png')
})

额外排查点

如果修改后仍出现报错,可以打印element.length确认元素是否成功获取,检查选择器语法是否书写正确。

内容的提问来源于stack exchange,提问作者kiashiq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 06:06:06