我有一个网页游戏,使用javascript和jquery在输入字段中显示一个值。我希望测试的值在页面上可见。但是,如果我检查元素,则该值不会出现在html中。
以下是一些设置值的JS代码:
function updateTotal(){
$('#edit-game-result').val(game.totalScore);
}
这是html输入字段:
<input type="text" id="edit-game-result" size="10" maxlength="3" class="form-text" readonly/>
我尝试过像Capybara这样的测试:
期望(find_field('edit-game-result')。value).to eq 10
此测试找到该字段但提供输出: 预期:10得到:零
我认为这是由于这个原因: Is the HTML is View Source different from the HTML in Inspect Element? 但是我找不到让Capybara读取价值的方法。
这也可能是相关的: http://ahmednadar.github.io/12/09/2013/overwrite-how-Capybara-ignores-hidden-elements/
我相信测试运行时该字段的值为10。但是我无法在Capybara测试中访问该值。
你能帮我找一个有效的Capybara测试,或者解释为什么它不起作用吗?
答案 0 :(得分:0)
你遇到的问题是你找到了元素,然后检查它上面的值,它不会等待值匹配。相反,你应该使用Capybara提供的匹配器
expect(page).to have_field('edit-game-result', with: '10')
将使用Capybaras等待/重试行为等待值更改。