我有一个包含选择框和文本字段的表单。
根据选择框选择动态显示文本字段。如果selectbox的值为"是",则将显示文本字段,反之亦然。 我正在运行一个rspec测试并用&#34填充选择框值;是"
select 'Yes', from: 'property[have_water_bills]'
现在我想填写文本字段的值
fill_in 'property[irrigation_cycle_count]', with: 5
但是我收到了以下错误。
Capybara::ElementNotFound:
Unable to find field "property[irrigation_cycle_count]"
也就是说,水豚找不到动态元素。有谁知道如何解决这个问题?
答案 0 :(得分:1)
当从选择中选择一个项目时,恶作剧者不会对click
事件进行奖励。它会在选项focus
选项change
上生成blur
。change
。更像是用户使用键盘选择选项而不是使用鼠标。您可能应该使用逻辑来在change
事件上显示您的文本字段,以便在人们使用鼠标或键盘在您的页面中导航时它可以正常工作。在command.CommandText = @"UPDATE sellinginventorytable SET cqty=cqty+@aqty,`date`=CURRENT_TIMESTAMP(),`user`=@user WHERE cid=?cid;
INSERT INTO internaltranstable SET `type`='INV.ADJ.', `cid`=?cid, `cqty`=@aqty, `date`=CURRENT_TIMESTAMP(), `notes`='STORE INVENTORY ADJUSTMENT', `area`='COUNTER', `sender`=@user, `receiver`=@user;";
command.Parameters.AddWithValue("?cid", row.Cells["barcode"].Value);
command.Parameters.AddWithValue("@aqty", row.Cells["aqty"].Value);
command.Parameters.AddWithValue("@user", Properties.Settings.Default.user.ToUpper());
command.ExecuteNonQuery();
command.Parameters.Clear();
事件上运行您的显示/隐藏逻辑更有意义,因为这是您真正关心的,而不是点击。
答案 1 :(得分:0)
最后使用以下代码
使其工作page.execute_script("$('#have_water_bills').val('true').trigger('click')")