水豚无法找到已/未禁用的字段(文本输入)

时间:2018-07-04 15:35:26

标签: ruby capybara

将水豚与黄瓜(和硒)一起使用时,我看到两个截然不同的反应,它们彼此矛盾,我有些失落。

尝试:

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

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

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

但是如果禁用设置为false,我会得到

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

我环顾四周,但找不到其他人描述此问题,所以我确定这一定是我所缺少的东西,但是任何人都可以阐明这是怎么发生的吗?

2 个答案:

答案 0 :(得分:0)

Capybaras find_field通过ID,名称,占位符或关联的标签文本查找表单字段。由于“ SANDBOX_FIELD_USERNAME”不是您要填充的元素中的所有元素,因此找不到该字段。您可以

fill_in('Username', with: username)

匹配占位符文本,并设置与

基本上相同的值
find_field('Username').set(username)

答案 1 :(得分:0)

您还可以执行以下操作:

page.fill_in :placeholder => 'Username', with: 'some_name'