Редкие появления элемнтов на форме
-
Иногда на форме появляются элементы(чекбоксы, например), которые в процессе работы надо нажать. Как отследить их, чтобы быстрее учесть их в скрипте, если они достаточно редки и в один поток их очень долго дожидаться?
-
@Mulin Сэмулировать в многопотоке даную ситуацию...запихнуть все в игнор. Потом проверить ошибку.(естественно если появятся дополнительные элементы - скрипт застопорится, так как эти элементы не учтены) Если была ошибка... сохранить код страницы в файле. Проанализировать его и найти те элементы, что нужно. Прописать уже нормальные условия в самом скрипте.
-
@seedgg Элемент может быть добавлен джаваскриптом или быть во фрейме. Как быть тогда?
-
@Mulin said in Редкие появления элемнтов на форме:
@seedgg Элемент может быть добавлен джаваскриптом
какая разниуц
или быть во фрейме.
iframe> >FRAME>
-
@ruzne Ну, он может не подгрузиться и я так и не узнаю код для клика.
-
@Mulin
если чтото не подгрузится не будет и элемента, кликать почему?
дав пути 1) ну и пофиг в следующийраз,
2)проверяем все возможные даже маловероятные ситуации
правильно говорить известные маловероятные...во, если блок игнорирования ошибок генерирует код ошибки делать скриншот всего окна
-
@ruzne Понял, спасибо. Было бы хорошо чтобы в бас был встроен какой-нибудь простой инструмент, с помощью которого можно было бы в процессе уже работы пытаться вытянуть код для клика(ввода и т.д.) по элементу, очень бы сократилось бы время для разработки.
-
@Mulin
что значит код для клика? кликакть можно по чему угодно.
если нужен переход по ссылка то можно получить все ссылки
все боксы можно найти querySelectorAll('input'), тфу мы select, так же с бутомоми и чем другим что можно придумать
я к тому как себе можно представить такое, я не знаю что будет происходить, но если это произойдет то пускай работает.перебрать все input'ы можно и >CSS> input > AT 0 или как там AT > 0, соответственно 0 меня на 1 потом 2 ...
-
@ruzne А где гарантия что бас тоже видит так же как ты сам напишешь? Може там где-то фрейм пропустил или еще какую-то секцию.
-
@Mulin
ну ладно фрейм, может быть а как он что еще пропустит
input селектор для всех полей ввода с тегом input без вариантов
iframe тоже гарантировано селектор для всех фреймов
если опаопасаться что пропустишь можно поставить обработчик событий на изменение страницы и в функции обработчике проверять select ли измененный элемент или input, так гарантированно найдет и внутри фрейма и в коде сгенерированном js и даже если елемент появится в любое время как появится ттак найдет
-
@ruzne
А можно пример кода в котором проверка есть ли вообще видимые чекбоксы, а потом после нахождения хоть одного чекбокса нажимаются все независимо в какой они секции?
-
document.addEventListener("DOMSubtreeModified", function(event){ if(event.currentTarget.tagName == 'input' && event.currentTarget.type == 'checkbox'){ ... } });
-
@ruzne
Спасибо конечно, а как это использовать в рамках Баса?
-
@Mulin
выполнять при каждой загрузке
-
@ruzne Так это выполнится код сразу же. А мне надо проверять виден ли элемент на экране или нет, его может и не быть видно в начале, а только после каких-то действий появляется и только тогда жать.
-
@Mulin
Это установит обработчик события мутации которая будет проверять каждый раз как любой элемент на странице изменится а равно появится
-
@ruzne а как просто в цикле проверить?
-
@Mulin
уже готовое решение надо?
-
Ну я не знаю что из себя представляют чекбоксы которые мне надо чекнуть, просто знаю что они редко появляются после нескольких кликов на определенную кнопку, я даже не знаю, во фрейме они или нет, я конечно подготовил отловку хтмл, но она скорее всего не поможет, т.к. добавляются они скорее всего js и сидят во фрейме(не уверен тут). Как проверить их существование и видимость не зная селекторов - хз.
-
@Mulin
по другому, что такое селектор?
почему селектор чек бокса не знаешь, я уже ..рас селектор чекбокса написал, правда стандартного конечно, ну не стандартный тогда у него полюбому будет [class*="chekbox"], скорее всего, очень вероятно
-
This post is deleted!