【发布时间】:2019-05-08 13:25:44
【问题描述】:
我使用 Testcafe 来测试一个使用 jquery 插件 Chosen 和 我想根据外部辅助函数 (getSelectedOption) 返回的值在我的测试代码中进行断言。
这个函数获取一个选择的选择器作为参数并且应该将选择的值返回给断言,但是这个函数总是返回列表的第一个元素而不是选择的那个。
当我在测试中使用函数代码时,一切正常。 该函数似乎没有关于 HTML 数据的实际状态,并且看不到某个元素已被选中。
这是一个来自测试代码的sn-p:
await t
.click(await getOptionByText('salutation', 'Frau'))
.expect(await getSelectedOption('gender')).eql('weiblich')
这是一个来自外部函数的sn-p:
export const getChosenSelectorFromName = selectName => `#${selectName}_chosen`;
export const getSelectedOption = async selectName => {
const selectedOptionText = await
Selector(getChosenSelectorFromName(selectName))
.find('.chosen-single')
.innerText;
return selectedOptionText.toLowerCase().trim()
};
export const getOptionByText = async (selectName, optionText) => {
const chosenSelectorString = getChosenSelectorFromName(selectName);
await t.click(Selector(chosenSelectorString));
return await Selector(chosenSelectorString)
.find('.chosen-drop')
.find('li')
.withText(optionText);
};
当我在测试中使用类似 getSelectedOption 函数的代码时,一切正常:
const genderSelect = Selector('#gender_chosen);
.click(await getOptionByText('salutation', 'Frau'))
.expect(genderSelect.innerText).eql('WEIBLICH')
【问题讨论】:
标签: javascript automated-tests e2e-testing web-testing testcafe