Я написал программу для очистки экрана, которая следит за часами (на сервере приложений) и в 7:00:00 делает черточку, чтобы сделать бронирование онлайн.Работает нормально.Тем не менее, я потратил время, пытаясь улучшить его производительность.Я использую селен, с хромовым драйвером.
Вот что я выучил.Я пробовал различные способы поиска (по link_text, by_xpath и т. Д.) И щелкнул по рассматриваемому элементу (показан ниже).Когда я нахожу элемент без щелчка, процесс поиска занимает около 0,02 секунды.Когда я нахожу его одним щелчком мыши (мне нужно выбрать элемент и перейти на следующую страницу), это занимает более секунды.Я получаю те же результаты независимо от того, какой вариант find_element_by я использую, и я получаю те же времена в автономном или обычном режиме.
Вот моя теория - найти элемент относительно просто в html, уже загруженном в мою машину.Тем не менее, когда я нажимаю на элемент, обработка переходит на сервер, который делает некоторые вещи, и я получаю новый iframe, который требует времени.Таким образом, я пришел к выводу, что, возможно, я не смогу вынести большую часть этого времени (буквально то же самое утверждение без опции щелчка занимает 2% времени), но я надеюсь, что у кого-то есть другая мысль.Я думал, может быть, я мог бы перейти ко второму ifame локально, но не могу найти способ сделать это.Я также рассмотрел что-то иное, чем селен, но так как я думаю, что проблема лежит на стороне сервера, не уверен, что оно того стоит.
Заранее спасибо за любые идеи.
Программадовольно большой, но вот соответствующий раздел:
Назад из NAP - ДЕЙСТВИТЕЛЬНО ЗАКРЫТЬ до 7:00 AM, выберите желаемую дату и перейдите на следующую страницу (действительно iframe) - с использованием подготовленного xpath
try:
br.find_element_by_link_text(str(day_to_book)).click()
#sleep(refresh_factor)
except NoSuchElementException:
self.queue.put("- (" + thread + ") Attempted date selection too early? " + str(datetime.datetime.now()\
+ datetime.timedelta(seconds = second_difference))[-11:-4])
Вот HTML-код для элемента 'class = "#"> 31:'
"31 31"