【发布时间】:2018-07-22 16:55:14
【问题描述】:
目前我正在尝试切换到 iframe/fancybox,但出现以下错误:
line 237, in check_response raise exception_class
(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException:
Message: unknown error: missing 'ELEMENT'
这就是我定位 iframe 的方式:
_iframe_ = {"by": By.XPATH, "value": "//iframe[@class='fancybox-iframe' and starts-with(@id,'fancybox-frame') and contains(@src,'/reminder/add/relation/')]"}
def __init__(self, driver):
super(BasePage, self).__init__()
self.driver = drive
self.driver.switch_to.frame(self._iframe_)
iframe 名称是:
fancybox-frame1518441842751"
html:
<iframe id="fancybox-frame1518443041369" name="fancybox-frame1518443041369" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen="" scrolling="auto" src="/reminder/add/relation/58048" kwframeid="1"></iframe>
【问题讨论】:
-
可以分享
<iframe>标签的相关HTML吗? -
检查已编辑的帖子。
-
试试
self.driver.switch_to.frame(self._iframe_["value"])或self.driver.switch_to.frame(self._find(self._iframe_)) -
这会导致 NoSuchFrameException。消息:没有这样的框架
-
在这种情况下您可能需要实现 ExplicitWait,例如
expected_conditions.frame_to_be_available_and_switch_to_it(self._iframe_["value"])。无论如何,“没有这样的框架”是另一个问题
标签: python selenium selenium-webdriver iframe element