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

如何在Taiko测试中获取选中元素值及断言输入内容?

在Taiko测试中获取元素值并断言的解决方案

我来帮你解决这两个Taiko测试相关的问题:

1. 如何在Taiko测试中获取当前选中元素的值?

在Taiko里获取元素的值,主要有两种实用方法:

  • 使用getAttribute方法:如果你已经通过选择器定位到了目标元素,直接调用getAttribute('value')就能拿到输入框的当前值。比如先定位元素再取值:
    const targetInput = $('input', below('someHeader'));
    const inputValue = await targetInput.getAttribute('value');
    
  • 使用evaluate函数:如果需要更灵活的浏览器端操作,用evaluate可以直接在浏览器上下文执行JS代码来获取值:
    const inputValue = await evaluate($('input', below('someHeader')), element => element.value);
    

2. 针对你的测试脚本,如何断言输入的文本已写入元素?

你的脚本里已经通过below('someHeader')定位了input元素,就算没有id,也可以通过以下几种方式检查值是否为'abc':

方式一:重新定位元素并断言

写入文本后,再次用相同的定位条件找到元素,获取值后和预期对比:

await click($(`input`, below('someHeader'))); 
await write('abc');

// 重新定位元素并获取值
const inputValue = await $('input', below('someHeader')).getAttribute('value');
// 用断言库验证(比如Node.js的assert模块)
assert.equal(inputValue, 'abc');

方式二:用evaluate直接在浏览器端断言

可以把断言逻辑放到evaluate里,直接在浏览器环境检查元素值:

await click($(`input`, below('someHeader'))); 
await write('abc');

await evaluate($('input', below('someHeader')), element => {
    if (element.value !== 'abc') {
        throw new Error(`Expected value 'abc', got '${element.value}'`);
    }
});

方式三:利用focused()定位当前激活元素

因为你刚点击过这个input,它处于聚焦状态,用focused()可以直接获取当前激活的元素,不用重复写定位条件,更简洁:

await click($(`input`, below('someHeader'))); 
await write('abc');

const focusedInputValue = await focused().getAttribute('value');
assert.equal(focusedInputValue, 'abc');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 18:07:49