Веб-страница 450 КБ. Разве размер страницы, в которой селен XPath занимает 30 с лишним секунд, чтобы найти элемент по идентификатору в IE? - PullRequest
0 голосов
/ 01 августа 2009

Я проводил тесты селена на сайте, и на одной из главных страниц, которые люди чаще всего используют, размер этой страницы составляет 450 КБ. Это ужасно разработанная страница, но не в этом дело. Когда я пишу свои тесты селена, каждый раз, когда тест должен найти что-то на странице по идентификатору, требуется 30 секунд, чтобы найти элемент. В результате это делает тесты невероятно медленными.

Я использую iehta в качестве типа браузера. Это также https сайт.

Я также использую следующее для парсера xpath, который, как я слышал, должен быть быстрее.

selenium.UseXpathLibrary ( "JavaScript-XPath");

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

Ответы [ 3 ]

1 голос
/ 02 августа 2009

Xpath и IE с Selenium занимают много времени для обработки. Один из лучших способов обойти это - быстрее найти элемент - сделать XPath более прямым.

Например, если элемент имеет класс в своем атрибуте, добавьте его в запрос Xpath. например, // div может стать // div [@ class = 'classname']

Если у него есть идентификатор, даже если он динамический, попробуйте его использовать. например, // div [содержит (@ id, 'nondynamicpart _')]

Чем более прямой xpath будет тем быстрее, так как с каждым запросом будет возвращаться меньше элементов.

Размер страницы будет влиять на скорость запроса, поэтому его уменьшение будет быстрее

0 голосов
/ 03 августа 2009

Стратегия определения местоположения, основанная на XPath, может быть очень медленной в IE (особенно IE6). В дополнение к предыдущим ответам, я бы предложил попробовать стратегию определения местоположения на основе .css (примеры можно найти в документации Selenium).

«тест должен найти что-то на странице по идентификатору» - это неясно, поскольку определение местоположения по идентификатору должно быть одним из самых быстрых способов. Почему вы используете XPath для элементов, имеющих идентификаторы, а не встроенные функции selenium (я говорю о чем-то вроде selenium.type ("ID", "textToType"))?

0 голосов
/ 01 августа 2009

Это необычно большая страница, но не неслыханная. Вы включаете размер вашей сессии? Кроме того, если на странице используется AJAX, вы не увидите все это в «источнике».

Является ли страница допустимой XHTML? Если это так, вы можете обращаться с ним как с XmlDocument и с XPath.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...