使用 puppeteer 验证输入字段的只读 属性
Verifying readonly property for an input field using puppeteer
请认为我是菜鸟,因为我还在学习木偶师。
我正在编写一个测试来验证以下输入字段是否具有 只读 属性 以阻止最终用户修改它。
<input readonly id="serverUrl" type="text" value="https://mytestservice.com/">
我尝试了几种方法来实现这一点,但我的方法返回未定义或错误,例如
let inputField = await page.$('#serverUrl')
const is_readonly = await (await inputField.getProperty("readonly")).jsonValue();
以上returnsundefined
.
由于我使用以下方法获取了禁用的单选按钮 属性,我认为我可以使用以下方法对输入字段执行相同操作以验证只读 属性:
const is_readonly = await page.$('#serverUrl[readonly]') !== null;
上述输入字段的结果是 false
。
然后我 运行 在另一个没有只读字段的字段上使用相同的方法 属性 该字段的结果也是错误的。
is_readyonly value is : false
谁能详细说明我做错了什么或如何解决它,如果有任何帮助,我们将不胜感激,好吗?
您的问题是 属性 被指定为 readOnly
而不是 readonly
。来自 specification:
The readOnly IDL attribute must reflect the readonly content attribute
所以你需要用大写O拼写:
const is_readonly = await (await inputField.getProperty("readOnly")).jsonValue();
请认为我是菜鸟,因为我还在学习木偶师。
我正在编写一个测试来验证以下输入字段是否具有 只读 属性 以阻止最终用户修改它。
<input readonly id="serverUrl" type="text" value="https://mytestservice.com/">
我尝试了几种方法来实现这一点,但我的方法返回未定义或错误,例如
let inputField = await page.$('#serverUrl')
const is_readonly = await (await inputField.getProperty("readonly")).jsonValue();
以上returnsundefined
.
由于我使用以下方法获取了禁用的单选按钮 属性,我认为我可以使用以下方法对输入字段执行相同操作以验证只读 属性:
const is_readonly = await page.$('#serverUrl[readonly]') !== null;
上述输入字段的结果是 false
。
然后我 运行 在另一个没有只读字段的字段上使用相同的方法 属性 该字段的结果也是错误的。
is_readyonly value is : false
谁能详细说明我做错了什么或如何解决它,如果有任何帮助,我们将不胜感激,好吗?
您的问题是 属性 被指定为 readOnly
而不是 readonly
。来自 specification:
The readOnly IDL attribute must reflect the readonly content attribute
所以你需要用大写O拼写:
const is_readonly = await (await inputField.getProperty("readOnly")).jsonValue();