TDLR: Центральный вопрос:
Правда ли, что в IE метод .Object объекта веб-теста и все «под-методы» напрямую предоставляют доступ к исходным объектам DOM, ас Chrome и FireFox UFT не возвращает исходные экземпляры объекта DOM, но клонирует, копирует или некоторые другие репрезентативные экземпляры?
Подробности: шаги воспроизведения, которые работают в сочетании с IE, и которые должны работать со всеми поддерживаемымибраузеры в соответствии с документацией отказывают в связи с Chrome и Firefox без уважительной причины.
Анализ показывает, что это вызвано неожиданным поведением или ошибкой в UFT.
Поэтому я опишупроблема в общем. (Извините, пока нет SSCE.)
В частности:
Если я использую T T.Object.parentNode на уровне UFT тестового объекта для ссылки на родительский элемент,и затем вызовите там .childNodes, чтобы определить непосредственных потомков родительского элемента, тогда применяется следующее:
Ожидаемый: список, предоставленный childNodes, содержит среди других возможных экземпляров также экземпляр T.Object.
Факт: список, предоставленный childNodes, содержит (среди других возможных дочерних элементов) объект T.Object, только если IE является браузером, в котором находится DOM. Если используется Chrome или Firefox, список, предоставленный T.Object.parentNode.childNodes, содержит элемент, представляющий точно такой же элемент DOM, что и T.Object.parentNode, но это не тот же экземпляр объекта, т.е. экземпляр объекта отсутствуетE в списке, предоставленном childNodes, для которого выражение UFT VBScript "E is T.Object.parentNode" оценивается как true.
На уровне JavaScript можно показать, что допущение "A.parentNode.childNodes возвращаетсписок, содержащий экземпляр объекта A "всегда выполняется (где A - любой элемент (кроме корня) с вложенными элементами). Однако на уровне UFT можно понять, что это предположение применяется только в связи с IE, но не в связи с Chrome или Firefox.
Но документация UFT утверждает, что нативный объект DOM доступен напрямую. через .object, и из этого мы заключаем, что вызовы и возвращаемые значения методов таких объектов DOM должны проходить напрямую.
Вместо этого для Chrome и Firefox UFT, кажется, имеет механизм, так что, например,списки (например, NodeList, предоставленный childNodes) не передаются неизмененными как результат функции, но элементы списка клонируются или что-то подобное, так что предоставляются не собственные экземпляры, а только копии / представители / клоны.
Это правда? Тогда я считаю это ошибкой, либо в документации, либо в поддержке Chrome и Firefox в UFT. Есть ли обходной путь?
Я только сейчас начинаю обращаться к Chrome и Firefox как к целевым браузерам по разным причинам, и из-за вышеуказанных обстоятельств центральный универсальный код, который используется, неожиданно для меня прерывается, и я не понимаюЯ не знаю ни одного общего обходного пути, поэтому мне пришлось бы разрабатывать индивидуальный обходной путь для каждого конкретного случая, которого у меня буквально сотни.
Есть предложения?