如何在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
相关产品推荐
相关产品推荐

