Так что я не уверен, сработает ли это именно для вас в вашей ситуации. Я попытался смоделировать раскрывающийся список, в котором было несколько вариантов, используя класс 'is-disabled' , и провел тест с функцией, которая щелкает самый первый параметр в раскрывающемся списке, который не отключен. Я основал эту функцию на отключении. это
Вот пример выпадающего списка, который я сделал
https://jsfiddle.net/L6p2u/190/
Вот тестовый код (оранжевый должен быть первым вариантом, который не отключен)
import { Selector, t } from 'testcafe';
fixture `testcafe canvas`
.page `https://jsfiddle.net/L6p2u/190/`;
const medwait = 5000
const longwait = 15000;
const dropdown = Selector('#colour');
async function selectFirstAvailableOption(selector) {
const select = selector;
await t // select the first available option
.setTestSpeed(0.7)
.hover(select)
.expect(select.hasAttribute("disabled")).notOk({timeout: 5000})
.click(select)
.click(select
.find("option")
.filter((node) => {
if (node && node.className.indexOf('is-disabled') == -1) {
return true;
}
return false;
})
.nth(0)).wait(5000); // this wait is just so you can see
}
test('Instructor', async t => {
await t
.switchToIframe('[name="result"]')
await selectFirstAvailableOption(dropdown);
});