capybara在页面上找不到价值

时间:2016-11-04 23:59:10

标签: javascript capybara

我有一个网页游戏,使用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测试,或者解释为什么它不起作用吗?

1 个答案:

答案 0 :(得分:0)

你遇到的问题是你找到了元素,然后检查它上面的值,它不会等待值匹配。相反,你应该使用Capybara提供的匹配器

expect(page).to have_field('edit-game-result', with: '10')

将使用Capybaras等待/重试行为等待值更改。