Я пытаюсь написать сценарий, который должен адаптировать его поведение рабочего процесса в зависимости от того, существует или нет какой-либо конкретный объект браузера, установленный в селекторе CSS.
Я не хочу использовать метод document.getElementByID, так как это не является технически селектором CSS, и все наше предприятие стандартизировано в селекторе CSS, поэтому все, что подходит к DOM другому, тогда селектор CSS не пройдет мимо нашего процесса проверки кода тем не мение.
var thing = await things.thingSelector(thingName);
if (await t.expect(thing.exists).notOk()) {
await t.click(things.OpenThing(thingName));
} else {
return false;
}
return true;
Где вещьSelector:
const thingSelector = name =>
Selector('p.thing-header-title span')
.withText(name)
.parent('div.thing');
Где OpenThing:
const OpenThing = name =>
thingSelector(name)
.find('a.thing-footer-item')
.withText('Open');
Мне нужно иметь возможность продолжить выполнение, если объекта нет, и я проверяю, что он существует, или если объект есть, и я проверяю, что он не существует, а также случаи, когда объекта нет. и его не существует, и объекта нет, и я проверяю, что его не существует.
Во всех случаях мне все равно нужно продолжить рабочий процесс.
Я пробовал обе стороны логической монеты:
if (!await t.expect(thing.exists).ok())
А также
if (await t.expect(thing.exists).notOk())
Если одно из указанных выше не терпит неудачу в одном сценарии, оно не будет выполнено в другом, а другое - в сценарии, который первый не завершился неудачей. Мне нужно что-то, что даст мне логику, но никогда не завершит выполнение скрипта и все же позволит мне возвращать True или False в зависимости от того, присутствует или нет объект.
Заранее благодарю за то, что помогли мне решить эту проблему, а также научиться и расти в своих навыках Javascript!