Сделал так не работает
//*[contains(@class,'>CSS> :nth-child(2) > .flickr-user > .name > .username')]Оптимизация действия "Проверить существование"
-
@Dodok said in Оптимизация действия "Проверить существование":
потом логи ошибок и восстановлено, забиты хламом.
Это не так важно по сравнению с полным зависанием скрипта от перегрузки его циклами, тем более что не для всех скриптов необходимо потом смотреть логи. Несколько минут в нотепаде решит эту проблему.
-
-
@spacerange said in Оптимизация действия "Проверить существование":
@doupiu Не знаю поможет или нет, но я подобную проблему решил так. Вместо цикла с проверить существованием я ставил ожидание элемента, а на нем игнорирование ошибок. И в зависимости от ошибки уже выполнял какое нибудь действие.
Может и помогло бы, но мне тогда нужен кубик "Ждать пропадания элемента" вместо "Ждать появления элемента", а таковой отсутствует :)
-
Если не тайна, скиньте в личку ссылку на сайт.
-
@Dodok
После каждого клика может появиться несколько видов ошибок или клик может просто не сработать. Из-за этого, если расставлять "Ждать появления", скрипт будет ждать того, чего не дождется. Сейчас же после каждого клика стоит функция "FullLoad" (цикл с проверкой существования лоадера) + "Проверить существование" ожидаемой страницы. То есть если что-то не так - он сразу выходит из потока. Компактно и работает без нареканий, но вот с нагрузкой проблема. -
@doupiu said in Оптимизация действия "Проверить существование":
@Dodok
После каждого клика может появиться несколько видов ошибок или клик может просто не сработать. Из-за этого, если расставлять "Ждать появления", скрипт будет ждать того, чего не дождется. Сейчас же после каждого клика стоит функция "FullLoad" (цикл с проверкой существования лоадера) + "Проверить существование" ожидаемой страницы. То есть если что-то не так - он сразу выходит из потока. Компактно и работает без нареканий, но вот с нагрузкой проблема.Плюс лоадер может появляться также после различного рода селектов и других взаимодействий, страница не меняется и привязаться к ожиданию чего-то проблематично.
Поэтому нужно что-то, завязанное на лоадере, потому что пропадание лоадера - 100%-ный вариант.
-
@bigorat said in Оптимизация действия "Проверить существование":
@doupiu, а вы пробовали в цикле после всех проверок наличия элементов ставить ожидание хотя бы в секунду? Я так же использую проверки в циклах, но всегда добавляю паузу, у себя огромного потребления ресурсов не вижу.
Да, но, к сожалению, это не вариант. Кликов много, если везде ждать даже по 0,5 сек - набегает лишняя задержка. А мне как раз скорость важна, я для этого и хочу нагрузку снизить, чтобы скорость увеличить..
-
Что сделал в итоге:
- Первое и самое главное: разделил цикл на 3 разных цикла (у меня там 3 вида лоадеров и проверялись все в одном цикле). Разделение на 3 цикла уже само по себе уменьшило нагрузку считай в 3 раза (т.к. теперь крутится в цикле одно действие "Проверить существование", а не 3 как раньше).
- Добавил задержку 300 мс в цикл. Так работает даже быстрее, чем без задержки, т.к. не виснет ЦП.
-
@doupiu said in Оптимизация действия "Проверить существование":
Что сделал в итоге:
2) Добавил задержку 300 мс в цикл. Так работает даже быстрее, чем без задержки, т.к. не виснет ЦП.ну вот об этом я и говорил, иногда чуть медленнее оказывается быстрее :)
Есть много тем на форуме - когда добавление небольшой задержки выводит скрипт из зависонов и оверхеда.
