TinyMCE: Capybara::ElementNotFound: 无法找到可见框架 "content_ifr"
TinyMCE: Capybara::ElementNotFound: Unable to find visible frame "content_ifr"
在 Capybara 功能规范中,我正在尝试执行以下操作:
within_frame("element_content_content_ifr") do
# do stuff
end
其中 element_content_content_ifr
是我的 tinymce iframe 的 CSS ID。
我收到错误:
Capybara::ElementNotFound:
Unable to find visible frame "element_content_content_ifr"
我在测试和检查元素期间设置了暂停。指定ID的iframe肯定是有的,但是Capybara找不到。我没有遇到 Capybara 在我的应用程序的其他部分查找 iframe 的问题,只有 TinyMCE iframe。
在执行 within_frame
行之前,我也尝试过 sleep 5
,但我得到了同样的错误。我做错了什么吗?当 TinyMCE 在页面上时,是否有正确的方法来进行 Capybara 测试?
附件是 iframe 在页面上的可见性及其 DOM 祖先的屏幕截图:
从显示的 HTML/CSS 来看,iframe 的显示方式令人困惑,因为它的祖先 <div role="application" ...>
具有可见性:"hidden" 作为一种样式,并且没有可见的覆盖在下面的任何地方。首先要确保您 运行 是 Capybara 的最新版本以及您正在使用的任何驱动程序(我假设是 selenium)。如果您已经是,或者这不能解决问题,您可以尝试使用
解决它
within_frame("element_content_content_ifr", visible: false) do
看看是否可行。
除此之外,如果您能弄清楚是什么 CSS 使框架在隐藏元素内实际上可见,如果您能在 Capybara 项目上提交问题并提供足够的信息来复制,我将不胜感激问题。
在 Capybara 功能规范中,我正在尝试执行以下操作:
within_frame("element_content_content_ifr") do
# do stuff
end
其中 element_content_content_ifr
是我的 tinymce iframe 的 CSS ID。
我收到错误:
Capybara::ElementNotFound:
Unable to find visible frame "element_content_content_ifr"
我在测试和检查元素期间设置了暂停。指定ID的iframe肯定是有的,但是Capybara找不到。我没有遇到 Capybara 在我的应用程序的其他部分查找 iframe 的问题,只有 TinyMCE iframe。
在执行 within_frame
行之前,我也尝试过 sleep 5
,但我得到了同样的错误。我做错了什么吗?当 TinyMCE 在页面上时,是否有正确的方法来进行 Capybara 测试?
附件是 iframe 在页面上的可见性及其 DOM 祖先的屏幕截图:
从显示的 HTML/CSS 来看,iframe 的显示方式令人困惑,因为它的祖先 <div role="application" ...>
具有可见性:"hidden" 作为一种样式,并且没有可见的覆盖在下面的任何地方。首先要确保您 运行 是 Capybara 的最新版本以及您正在使用的任何驱动程序(我假设是 selenium)。如果您已经是,或者这不能解决问题,您可以尝试使用
within_frame("element_content_content_ifr", visible: false) do
看看是否可行。
除此之外,如果您能弄清楚是什么 CSS 使框架在隐藏元素内实际上可见,如果您能在 Capybara 项目上提交问题并提供足够的信息来复制,我将不胜感激问题。