在Cucumber Ruby with Capybara中定位具有动态ID的元素

iezvtpos  于 2023-05-06  发布在  Ruby
关注(0)|答案(1)|浏览(88)

我有一个表单,它允许用户添加元素,然后动态生成id。
第一个文本输入id简单地显示为

id=car[car_attributes][0][name]

这让我可以简单地

fill_in "car_0_name", with: "Ford"

当用户向页面添加另一个输入时,定位器显示为

id=car[car_attributes][1664259795784][name]

为附加输入生成的id永远不会看起来相同。
在添加额外输入时,我如何确保我测试动态地针对正确元素?
如果可能的话,我想收集元素,并存储在一个数组中,引用元素如下

cars = page.all()

然后访问我想要的那个:

fill_in cars[1], with: "Nissan"
n9vozmp4

n9vozmp41#

不知道你是否解决了这个问题,但这个post可能是你正在寻找的。
所以你的问题的例子是,假设这是id:

find(:css, "input[id^='car_attributes_'][id$='name']").set("Nissan")

相关问题