Условие

Поддержка
  • Здравствуйте. Имеется страница и в зависимость от содержания страницы необходимо выполнить действия. Есть 3 вида содержания и все они могут появиться в случайном порядке (1-2-3, 3-1-2 и т.д.) Как правильнее составить условия их определения и дальнейшего выполнения скрипта? А то получается 9 if условий. Если бы было 10 разных видов, это же убиться можно было бы. Можно ли как то рационализировать? Спасибо

  • @elger said in Условие:

    Здравствуйте. Имеется страница и в зависимость от содержания страницы необходимо выполнить действия. Есть 3 вида содержания и все они могут появиться в случайном порядке (1-2-3, 3-1-2 и т.д.) Как правильнее составить условия их определения и дальнейшего выполнения скрипта? А то получается 9 if условий. Если бы было 10 разных видов, это же убиться можно было бы. Можно ли как то рационализировать? Спасибо

    Разные разметки страницы на разных отпечатках? :D

  • @fox Получается на сайте проверка по смс, почте, и капче. И они почти всегда в случайном порядке. Единственное до чего дошёл - получаю через XPath текст на странице. И если там написано капча - одно условие, смс - другое ну и так далее. Уменьшить количество условий как то можно?

  • @elger said in Условие:

    @fox Получается на сайте проверка по смс, почте, и капче. И они почти всегда в случайном порядке. Единственное до чего дошёл - получаю через XPath текст на странице. И если там написано капча - одно условие, смс - другое ну и так далее. Уменьшить количество условий как то можно?

    Ну, а в чём проблема то? Почему 9 условий? Когда у вас только 1 из возможных 3 вариантов?

  • @fox Так получится как: я получаю текст в котором просит капчу. Получается условие if(xpath.indexof("смс") тогда действия, потом if(мыло) и if(капча) я же не знаю что конкретно запросят первым.

  • @elger said in Условие:

    @fox Так получится как: я получаю текст в котором просит капчу. Получается условие if(xpath.indexof("смс") тогда действия, потом if(мыло) и if(капча) я же не знаю что конкретно запросят первым.

    Ну, вот вы и перечислили 3 условия, у вас же не все они друг за другом идут, а только одно из этих трёх появится. Откуда 9 условий?

  • @fox Всегда 3 проверки. То есть после подтверждения, скажем, на смс, нужно будет заново условия эти 3 писать. и в третий раз тоже

  • @elger said in Условие:

    @fox Всегда 3 проверки. То есть после подтверждения, скажем, на смс, нужно будет заново условия эти 3 писать. и в третий раз тоже

    Поставьте цикл на 3 итерации и в нём 3 условия действий

  • @fox И какой вид этот цикл будет иметь? смутно понимаю

  • @elger said in Условие:

    @fox И какой вид этот цикл будет иметь? смутно понимаю

    for от 1 до 3
         if(xpath.indexof("смс") > -1)
         if(xpath.indexof("капча") > -1)
         if(xpath.indexof("другое") > -1)
    
  • @fox А блин, понял спасибо. До элементарного не додумал. Спасибо

  • @fox Хм а если число действий будет неизвестно? ну допустим вместо 3-х будет просить мыло и смс, или только смс? Как такое реализовать?

  • @elger said in Условие:

    @fox Хм а если число действий будет неизвестно? ну допустим вместо 3-х будет просить мыло и смс, или только смс? Как такое реализовать?

    Через while и break

  • @fox А можно тоже картинку?) у меня программирование закончилось 4 года назад и я больше к нему не возвращался(

  • @elger said in Условие:

    @fox А можно тоже картинку?) у меня программирование закончилось 4 года назад и я больше к нему не возвращался(

    Вот для примера тестовый скрипт

  • @fox Понял. Спасибо!

  • Что это? Один элемент нужен. Свитч называется. Один логический элемент должен распределять более двух условий. То что есть сейчас с циклами нафаршированными условиями и специфическим кодом неприменимо. Это не визуальное программирование, а тупик.

    [[RANDOM_LIST_ELEMENT]].indexOf("смс") > -1 || [[RANDOM_LIST_ELEMENT]].indexOf("капча") > -1 || [[RANDOM_LIST_ELEMENT]].indexOf("другое") > -1
    
    [[RANDOM_LIST_ELEMENT]].indexOf("смс") > -1
    

    2021-11-18_19-20-33.png