我有一个React地址表单,它是由配置驱动的,每个元素可以是一个文本的 <input>
或 <select>
下拉式。当尝试使用下面的代码填写表格时,文本输入成功填充,但找不到选择元素。如果我把选择元素从循环中删除,之后再单独选择,就能正常工作。该 MOCKS.deliveryAddress
值只是字符串。
const addressFields = {
addressLine2: Selector('[data-testid="input-addressLine2"]'),
addressLine1: Selector('[data-testid="input-addressLine1"]'),
addressLine3: Selector('[data-testid="input-addressLine3"]'),
addressLine4: Selector('[data-testid="input-addressLine4"]'),
postalCode: Selector('[data-testid="input-postalCode"]'),
};
const fieldConfig = {
addressLine1: 'text',
addressLine2: 'text',
addressLine3: 'text',
addressLine4: 'select',
postalCode: 'text',
};
const enterAddress = async () => {
await Promise.all(
Object.keys(addressFields).map(async (field) => {
if (fieldConfig[field] === 'text') {
if (MOCKS.deliveryAddress[field]) {
await t.typeText(
addressFields[field],
MOCKS.deliveryAddress[field],
{
replace: true,
},
);
}
} else {
await t.click(addressFields[field]);
await t.click(
addressFields[field]
.find('option')
.withText(MOCKS.deliveryAddress[field]),
);
}
}),
);
};
}
我得到的错误是 1) The element that matches the specified selector is not visible.
我在处理选择器时是否做错了什么?map
?
先谢谢你