首页 > 解决方案 > Capybara 无法找到已禁用/未禁用的字段(文本条目)

问题描述

将 Capybara 与 Cucumber(和 Selenium)一起使用,我看到两种截然不同的反应,它们相互矛盾,我有点迷茫。

尝试去:

find_field('SANDBOX_FIELD_USERNAME', {disabled: true}).set(username)

如果禁用设置为true,那么我得到

Unable to find field "SANDBOX_FIELD_USERNAME" that is disabled (Capybara::ElementNotFound)

但是如果 disabled 设置为 false 我得到

Unable to find field "SANDBOX_FIELD_USERNAME" that is not disabled (Capybara::ElementNotFound)

我环顾四周,但找不到其他人描述这个问题,所以我确信它一定是我遗漏的东西,但任何人都可以阐明这可能是如何发生的吗?

标签: rubycapybara

解决方案


Capybarasfind_field通过 id、名称、占位符或关联的标签文本查找表单字段。由于“SANDBOX_FIELD_USERNAME”不是您尝试填写的元素中的任何一个,因此找不到该字段。你可以做

fill_in('Username', with: username)

匹配占位符文本,并设置基本相同的值

find_field('Username').set(username)

推荐阅读