Как переключаться между кадрами с помощью библиотеки селена с Python? - PullRequest
0 голосов
/ 11 июля 2020

Пытался переключить фрейм "верх" на "тело". Я пробовал разные способы, но не смог. Слишком много источников, но ни один из них не работает. В чем проблема? HTML структура находится в ссылке. Страница: «jsp».

# 1 
driver.switch_to_frame("body")

# 2
wait.until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"/html/frameset/frame[3]")))

Может проблема в видимости?

Ответы [ 2 ]

1 голос
/ 11 июля 2020

Переключитесь на содержимое по умолчанию из фрейма «верх», а затем переключитесь на «тело».

driver.switch_to_default_content()

0 голосов
/ 11 июля 2020

Как уже упоминалось в вопросе, вы пытаетесь переключиться напрямую с одного кадра на другой, которые находятся на одном уровне в DOM, например:

<iframe name="top"></iframe>
<iframe name="body"></iframe>

Вам необходимо переключиться на defaultContent перед переключением на другой кадр, используя:

driver.switch_to.default_content()

Затем попробуйте переключиться на кадр body

driver.switch_to_frame("body")

Мы не можем напрямую переключаться с одного кадра на другой, если целевой кадр не находится в текущем кадре.

Пример:

<iframe name="top">
    <iframe name="body"></iframe>
</iframe>

Тогда мы можем использовать:

driver.switch_to_frame("top")
driver.switch_to_frame("body")
...