Помогите с прокруткой



  • Здравствуйте, делаю так - получить количество элементов на странице, затем - for 0:[[ELEMENT_LENGTH]] прокручиваю вниз с помощью ввода текста.

    Здесь возникает проблема, страница не прокручивается до конца или наоборот прокрутка заканчивается после последнего элемента - в зависимости от настроек ввода текста, а мне нужно прокрутить до последнего и не ниже.

    Как это правильно реализовать? В дальнейшем планирую уменьшать количество элементов для рандомной прокрутки.



  • @basuserator
    for 0:[[ELEMENT_LENGTH]] - 1



  • @denanotherday спасибо, делала, но на разных страницах разное количество элементов, пробовала проверить существование элемента, в надежде, что цикл остановится когда дойдет до последнего, но это не работает. Нашла здесь тему https://community.bablosoft.com/topic/9704/как-определить-границы-статьи-чтобы-тепловая-карта-вебвизора-была-равномерной-при-скролле

    Мне не понятно как реализовать то, что в последнем сообщении



  • @basuserator что именно как получить булево? или как его применить? Как применить цикл в вашем скроле спустились на заданное значение или к элементу и снова проверили. Виден ну значит конец. Нет еще спустились.
    Цикл работает, значит условия по которым он у вас работает заданы неверно и у него есть несколько возможностей его прервать или продолжить в зависимости что там у вас получается.

    0:[[ELEMENT_LENGTH]]-1 Попробуйте вот так) Вы же индексом используете [[CYCLE_INDEX]]? правильно



  • @f0cus У меня так:

    1. получить количество элементов
    2. for - 0:[[ELEMENT_LENGTH]]
    3. лог текущее повторение цикла
    4. ввод текста <MOUSESCROLLDOWN><MOUSESCROLLDOWN><MOUSESCROLLDOWN>
    5. дальше стоит if
    6. break

    Проверить существование элемента перед if

    Как правильно задать проверку? Хотя бы примерно. Ставила .//img>[[ELEMENT_LENGTH]] получается указываю как раз последний элемент .//img>20, я точно что-то не так делаю..



  • @basuserator А что значит .//img>[[ELEMENT_LENGTH]] ? Какое то не совсем понятно условие. Вы по индексу идете или это такая проверка? но проверка начто?
    upd попробуйте так
    for
    0 (тут значение int)
    [[ELEMENT_LENGTH]] -1 (тут значение тип expression)
    ввод текста <MOUSESCROLLDOWN><MOUSESCROLLDOWN><MOUSESCROLLDOWN>
    проверка существования элемента
    ваше условие
    if(что то) (я не совсем понял ваше условие толи это строка больше числа) толи это сокращение какое то)
    break
    если вам нужно break по последнему элементу цикла, то проверка очень проста if([[CYCLE_INDEX]]>=[[ELEMENT_LENGTH]]-1)
    Но при таком раскладе он сам остановится на последнем элементе



  • @f0cus спасибо! Попробую ваш вариант.
    //img>[[ELEMENT_LENGTH]] это последняя картинка, она 20-я на странице



  • @basuserator Почему минус один) вы начинаете от 0 и именно по эту он у вас то пролетает, то не добирает. последний элемент у него будет не 20 а 19. Если я правильно понял то что вы там делаете. Вы брякаете не по значениям, а по индексу. И сам цикл аналогично. если 0 и 20 значит будет 21



  • @f0cus делала по разному и как вы сказали, не получается... нужно чтобы цикл остановился когда он проскроллит до >XPATH>.//p>AT>[[ELEMENT_LENGTH]] количество элементов на каждой странице будет разное,
    тестовый скрипт тест01.xml



  • @basuserator у вас само условие не верное этот элемент есть на странице с самого начала

    Проверяйте иногда. Страница для баса это не квадратик в середине, а все что прислал сервер и если вы этого не видите, это не значит что этого нет. Попробуйте обратиться к @kuzkuz Надеюсь он вам поможет понять логику скролла. У меня сейчас нет времени.
    upd не обязательно использовать else если if не отработает он дальше цикл будет выполнять.
    upd2 или почитать его темы он как раз этим занимался. там довольно подробно.



  • @f0cus спасибо, знаю, что неправильно, хотя задача кажется простой



  • @basuserator Нет она не так проста, как вам могло показаться. Вы пытаетесь скроллить к элементу а привязываться нужно к координатам а не к элементам. Сам запрос намекает если столько элементов.. то значит оно уже есть, а проверочный это всего лишь персонифицированный.
    Хотя на самом деле она проста Только нудна, общую схему дам. определяем свои координаты на старте, определяем видимую часть это и есть то самое окошко в центре. И ползем вниз до тех пор пока наш, ваш браузер не доползет до нужной точки. Это все есть в вопросах @kuzkuz конечно давать как он реализовал я не буду, если посчитает сам даст. Но поверьте именно так он и реализовал в браузере есть экшен координаты элемента. )) Остальное есть в его темах. Будут вопросы спрашивайте.



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


Log in to reply
 

  • 6
  • 18
  • 16
  • 4
  • 3
  • 1
  • 3
  • 1