我想创建一个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
。如何通过Xpath(或以任何其他方式使用Selenium)选择iframe和其他元素的主体?
答案 0 :(得分:20)
在切换到<iframe>
之前,您无法遍历//iframe[@name='editor_body']//body[@contenteditable='true']
。你的xPath,
<body>
不起作用,因为driver.switch_to.frame('editor_body')...
标记位于iFrame中,而iFrame不在当前上下文中。你需要先切换到它:
{{1}}