web-dev-qa-db-fra.com

Comment sélectionner des éléments dans un iframe avec Xpath?

Je veux créer un test Selenium pour tester nos extensions avec le courrier AOL. J'ai réussi à me connecter à AOL et à rédiger un e-mail, mais je dois également sélectionner des éléments dans l'éditeur, qui se trouve dans un iframe. J'ai vérifié et même lorsque l'éditeur est ouvert, le test suivant échoue:

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

J'obtiens l'erreur AssertionError: 1 != 0. Comment sélectionner le corps de l'iframe et d'autres éléments par Xpath (ou de toute autre manière avec Selenium)?

17
Uri

Vous ne pouvez pas traverser <iframe> Jusqu'à ce que vous y basculiez. Votre xPath,

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

ne fonctionnera pas car la balise <body> se trouve dans un iFrame, qui n'est pas dans le contexte actuel. vous devez d'abord y basculer:

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