Я использую селен на странице с большой DOM (1000 строк, ~ 10000 узлов). Я пытаюсь определить, существует ли элемент, который находится почти в самом конце DOM.Поиск большого DOM для элемента в конце
Структура нечто подобное:
<html>
<body>
<section></section>
<script></script>
<span>
// several more wrappers around the UL
<ul id="itemsList"></ul>
</span>
</body>
</html>
Если section
узел содержит 99% линий.
Я знаю, что UL всегда будет в одном месте.
XPath Я использую следующий:
//body/span//ul
Если UL существует, выполняется поиск < 500мс. Но если UL не существует, поиск займет 2-5 секунд. Я не понимаю этого, поскольку я ожидал бы, что обход случится таким же образом и займет такое же количество времени.
Как я использую селен, я также пробовал использовать By.Id
, но это дает тот же результат.
У вас есть неявный тайм-аут в вашем коде? – Grasshopper
В дополнение к комментарию выше, я бы рекомендовал попробовать использовать getElementsByXpath (или List) и проверить размер этого списка. –
Mikhail
Подумайте о поиске на жестком диске файла, начинающегося с root (C: \). Сравните это с началом с C: \ Users \ you \ Documents \ projects \ foobar \ meetingMinutes \ 2015 \ January \ Чем больше структуры DOM, заданной в XPath, тем меньше количество путей, которые селен должен искать и тем быстрее будет выполнен поиск. – MikeJRamsey56