一尘不染

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

selenium

我想创建一个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的主体和其他元素?


阅读 1198

收藏
2020-06-26

共1个答案

一尘不染

<iframe>在切换到之前,您无法浏览。您的xPath

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

将不会起作用,因为<body>代码位于当前上下文之外的iFrame中。您需要先切换到它:

driver.switch_to.frame('editor_body')...
2020-06-26