Подтвердить что ты не робот

Как выбрать элементы внутри iframe с помощью Xpath?

Я хочу создать тест Selenium для тестирования наших расширений с помощью AOL-почты. Мне удалось войти в AOL и написать письмо, но мне также нужно выбрать элементы внутри редактора, который находится внутри iframe. Я проверил, и даже когда редактор открыт, следующий тест не выполняется:

self.assertEqual(first=1, second=len(self.driver.find_elements_by_xpath(xpath="//iframe[@name='editor_body']//body[@contenteditable='true']")))

Я получаю ошибку AssertionError: 1 != 0. Как выбрать тело iframe и других элементов с помощью Xpath (или любым другим способом с Selenium)?

4b9b3361

Ответ 1

Вы не можете пройти через <iframe> до перехода к ним. Ваш xPath,

//iframe[@name='editor_body']//body[@contenteditable='true']

не будет работать, потому что тег <body> находится внутри iFrame, который не находится в текущем контексте. вам нужно сначала переключиться на него:

driver.switch_to.frame('editor_body')...