如何使用Xpath选择iframe中的元素?

时间:2015-03-02 16:37:52

标签: python selenium 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。如何通过Xpath(或以任何其他方式使用Selenium)选择iframe和其他元素的主体?

1 个答案:

答案 0 :(得分:20)

在切换到<iframe>之前,您无法遍历//iframe[@name='editor_body']//body[@contenteditable='true'] 。你的xPath,

<body>

不起作用,因为driver.switch_to.frame('editor_body')... 标记位于iFrame中,而iFrame不在当前上下文中。你需要先切换到它:

{{1}}