ruby - 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)
我环顾四周,但找不到其他人描述这个问题,所以我确信它一定是我遗漏的东西,但任何人都可以阐明这可能是如何发生的吗?
解决方案
Capybarasfind_field
通过 id、名称、占位符或关联的标签文本查找表单字段。由于“SANDBOX_FIELD_USERNAME”不是您尝试填写的元素中的任何一个,因此找不到该字段。你可以做
fill_in('Username', with: username)
匹配占位符文本,并设置基本相同的值
find_field('Username').set(username)
推荐阅读
- tensorflow - 具有 Tensorflow 背景的 Keras 可重现结果
- angular - 具有排序、分页和过滤功能的 Angular 数据表
- typescript - TypeScript:“不能将命名空间用作类型”
- python - 在提交之前保存编辑表单的最佳方法是什么
- scala - java.lang.ClassCastException:org.apache.spark.sql.catalyst.expressions.GenericRowWithSchema 不能是 com.streamsets.pipeline.api.Record 的大小写
- html - 按像素大小缩放 Img
- react-native - 按钮 onpress 转到反应本机基础中的选项卡屏幕
- docker - .NET Framework 4.8 宣言未知
- firebase - 颤振:PlatformException(sign_in_failed,com.google.android.gms.common.api.ApiException:10:,空)
- python - Slice 在 Django 开发中的行为与在 IIS 下运行时的行为不同