gpt4 book ai didi

css - 如何使用 Rails、Cucumber 和 Capybara 测试 Dropzone.js 上传?

转载 作者:技术小花猫 更新时间:2023-10-29 11:28:16 26 4
gpt4 key购买 nike

我有一个使用 Cucumber 和 Capybara 进行测试的 Rails 元素。我有一个使用 Dropzone.js 的文件上传页面。

我的上传使用对话框或拖放效果很好。测试是另一回事。

我的表单中有以下字段:

<input id="photo_image" multiple="multiple" name="image" type="hidden">

但是,在步骤定义中,我尝试了几种查找和附加文件数据的方法,但都不起作用。

我试过 fill_in:

fill_in "photo_image",  with: photo

我试过使用 css 选择器查找:

find('#photo_image').set photo

我试过用 xpath 查找:

find(:xpath, "//input[@id='photo_image']").set photo

但是他们都没有看到隐藏的字段。

Unable to find css "#photo_image" (Capybara::ElementNotFound)

Unable to find xpath "//input[@id='photo_image']" (Capybara::ElementNotFound)

Unable to find field "photo_image" (Capybara::ElementNotFound)

是否有任何测试方法可以使用 Dropzone.js 处理上传还是没有希望?

最佳答案

capybara 2.1 doesn't find hidden elements by default .

您可以将 ignore_hidden_​​elements 设置为 false:

capybara .ignore_hidden_​​elements = false

或者在你的方法中添加:visible选项:

attach_file('photo_image', path_to_file, visible: false)

我更喜欢第二种变体,因为在大多数情况下,在测试中找到的元素是可见的,如果其中一个元素被隐藏,最好让 Capybara 抛出异常。

注意::visible 选项也被大多数内部使用 Capybara::Query 的 Capybara 方法支持(比如 findall, has_css?, have_selector 等)

关于css - 如何使用 Rails、Cucumber 和 Capybara 测试 Dropzone.js 上传?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16722291/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com