【发布时间】:2019-08-08 19:57:21
【问题描述】:
在 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 测试?
【问题讨论】:
-
您确定“element_content_content_ifr”iframe 没有嵌套在另一个 iframe 中吗? iframe 在页面上也有任何大小吗?如果这些指针没有给出答案 - 添加相关的 HTML 或 DOM 检查的屏幕截图。
-
iframe 肯定不在另一个 iframe 内,虽然它在一个表单内,但这会影响什么吗?大小是一个有趣的问题。当没有任何内容时,我不确定它是否有大小,但在输入内容时有大小。感谢您的领导,如果它让我找到解决方案,我会告诉您。
-
我查看了它,iframe 是 936x156(基于设备的当前大小),所以 iframe 肯定应该是可见的。
-
请添加显示 iframe 及其祖先的 DOM 检查的 HTML 或屏幕截图
-
另外 - 确保您没有调用
within_frame,而您的作用域是不包含 iframe 的元素(如果您是作用域的话)。
标签: ruby-on-rails rspec tinymce capybara tinymce-rails