【发布时间】:2017-11-10 14:51:43
【问题描述】:
我在我的应用程序中使用Trix WYSIWYG editor。对于我的水豚测试:我要填写编辑器。
我找到了这篇文章:How to test basecamp's trip editor...,看起来很有希望。不幸的是,它一直给我这个错误:
Selenium::WebDriver::Error::ElementNotVisibleError: 元素不可见
因此,Capybara 似乎可以找到元素,但它只是没有与之交互,因为 Capybara 必须有一些默认设置才能不与隐藏/不可见元素交互。
环顾四周后,我发现了这个 Stackoverflow 问题:Is it possible to interact with hidden elements with capybara。
从那个帖子:我已经尝试过了:
def fill_in_trix_editor(id, value)
Capybara.ignore_hidden_elements = false
find(:xpath, "//*[@id='#{id}']").set(value)
Capybara.ignore_hidden_elements = true
end
还有这个:
def fill_in_trix_editor(id, value)
find(:xpath, "//*[@id='#{id}']", visible: false).set(value)
end
知道如何让 Capybara 填写编辑器吗?对于它的价值:我正在使用rails 5.1.1和chromedriver=2.29.461585
【问题讨论】:
-
用户如何与隐藏元素交互?你的规格测试是为了什么?它应该运行使该元素可见所需的任何代码,即用户为使其可见所做的任何事情
-
@DiegoSalazar 我更新了我的问题。最终我想弄清楚如何用 Capybara 填写编辑器。我走的路径使它看起来好像无法直接填充编辑器,所以唯一的选择是让 Capybara 填充隐藏元素。为了让它发挥作用,我现在正在研究 Thomas 的答案。
标签: ruby-on-rails ruby selenium selenium-webdriver capybara