Производительность IE 11 в среде роботов

Производительность моих скриптов очень низкая при работе в IE11. Некоторые из моих скриптов запускаются в Chrome за 2-3 минуты, а в IE это занимает более 25 минут. Я использую Robot Framework, и большинство моих локаторов — это xpath. В моем приложении нет локаторов идентификаторов для элементов. Я попытался переключиться на CSS в экспериментальных целях, но это немного улучшило производительность. Я понимаю, что, поскольку IE не имеет собственного механизма xpath, IEdriverserver использует для синтаксического анализа wicked-good-xpath. Эта библиотека xpath должна быть самой быстрой. Есть ли какие-либо другие модификации/улучшения, которые я могу сделать, чтобы улучшить производительность моих скриптов.


person user3262242    schedule 30.07.2016    source источник
comment
Производительность ужасна, когда я просматриваю DOM по списку элементов. например, выборка текста из списка span, div и т. д.   -  person user3262242    schedule 30.07.2016


Ответы (1)


Если вы используете 64-bit IEdriverserver, вам необходимо заменить его на 32-bit IEdriverserver, поскольку 64-разрядная версия IEdriverserver выполняется очень медленно.

Драйвер IE для определения основной причины. Когда вы используете IE 10 или выше в 64-разрядной версии Windows, по умолчанию процесс, в котором размещается содержащее окно, включающее хром браузера (адресная строка, кнопки навигации, меню и т. д.), является 64-разрядным процессом. Процесс, в котором размещается окно, в котором фактически отображается содержимое (на каждой вкладке), является 32-разрядным процессом.

Некоторые примечания. Внимательные читатели уже поняли, что это означает, что даже когда вы используете 64-разрядную версию Windows, вы, вероятно, используете 32-разрядную версию IE для отображения содержимого. Это весомый аргумент в пользу продолжения использования 32-разрядной версии драйвера IE для IE 10 и более поздних версий: на самом деле вы работаете не с 64-разрядной версией IE.

Если вы настаиваете на том, что вам необходимо запускать 64-разрядную версию IEDriverServer.exe, вы можете отключить собственные события, установив для возможности nativeEvents значение false, используя любой механизм, предусмотренный для этого вашей привязкой к языку.

Надеюсь, поможет..:)

person Saurabh Gaur    schedule 30.07.2016
comment
Спасибо Саурабх, я сделал это. Но производительность сильно не улучшилась. Время выполнения в Chrome и Firefox составляет около 3 минут, а в IE — около 17 минут. Сценарий в основном проходит через таблицу для извлечения данных. - person user3262242; 07.08.2016
comment
@user3262242 user3262242 Я бы посоветовал вам попробовать использовать cssSelector, если это возможно, потому что IE намного медленнее с xpath ... :) - person Saurabh Gaur; 07.08.2016
comment
Это не очень помогает, когда я запускаю тесты в IE с тестами, написанными в Robot Framework. - person user3262242; 24.12.2016