Как выбрать элементы внутри 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)?
Ответы
Ответ 1
Вы не можете пройти через <iframe>
до перехода к ним. Ваш xPath,
//iframe[@name='editor_body']//body[@contenteditable='true']
не будет работать, потому что тег <body>
находится внутри iFrame, который не находится в текущем контексте. вам нужно сначала переключиться на него:
driver.switch_to.frame('editor_body')...