Как проверить существование эл-та в iframe?
-
Допустим на сайте https://licard24.ru/lichnyj-kabinet-lukojl есть реклама внутри iframe, мне нужно кликнуть на ссылку в этой рекламе, но для начала убедиться, что она существует. Как это сделать (желательно через xpath)?
Xpath ссылки будет такой:
>XPATH> id("aswift_0") >FRAME> >XPATH> id("google_ads_frame1") >FRAME> >XPATH> //a
Как получить кол-во эл-ов
a
по xpath выше или хотя бы проверить его существование?
-
@agility said in Как проверить существование эл-та в iframe?:
Допустим на сайте https://licard24.ru/lichnyj-kabinet-lukojl есть реклама внутри iframe, мне нужно кликнуть на ссылку в этой рекламе, но для начала убедиться, что она существует. Как это сделать (желательно через xpath)?
Xpath ссылки будет такой:
>XPATH> id("aswift_0") >FRAME> >XPATH> id("google_ads_frame1") >FRAME> >XPATH> //a
Как получить кол-во эл-ов
a
по xpath выше или хотя бы проверить его существование?Не совсем понимаю что в итоге необходимо, если у вас есть селектор, то используйте его. Если селектор не известен, можете, например, пройтись циклом по всем iframe в поисках необходимого элемента.
Тестовый скрипт
Основная проблема iframe, что это по сути другой сайт в сайте и в браузере существуют очень жёсткие ограничения связи между фреймами по js.
В BAS'e можно обойти циклом все фреймы и вложенные фреймы.
Покажу на примере - эти два селектора абсолютно одинаковые:
>XPATH> id("aswift_9") >FRAME> >XPATH> id("google_ads_frame10") >FRAME> >XPATH> //a[@target="_blank"]/img >XPATH> //iframe >AT> 9 >FRAME> >XPATH> //iframe >AT> 0 >FRAME> >XPATH> //a[@target="_blank"]/img
То есть в цикле не обязательно знать id фрейма
>XPATH> id("aswift_9") >FRAME>
достаточно знать его порядковый номер в цикле
>XPATH> //iframe >AT> 9 >FRAME>