如何与赛普拉斯的范围输入(滑块)正确交互?

时间:2019-03-06 12:43:36

标签: javascript testing slider cypress

尽管我不熟悉测试或javascript,但我正在用javascript编写有关e2e测试的学士论文。

所以我有src的范围输入“滑块”

<input id="sum_slider" class="input-range js-inv-calc-input-sum-range js-input-range" type="range" name="investmentsum" min="20000" max="150000" value="20000" step="1000" title="Investitionsbetrag" style="background: -webkit-linear-gradient(left, rgb(255, 196, 0) 0%, rgb(255, 196, 0) 0%, rgb(119, 119, 119) 0%) no-repeat;">

赛普拉斯文档建议这样做

cy.get('input[type=range]').as('range')
  .invoke('val', 25)
  .trigger('change')

cy.get('@range').siblings('p').should('have.text', '25')

我尝试过:

 cy.get('#sum_slider[type=range]').as('range')
.invoke('val', 0%)
.trigger('change')

我选择百分比值是因为最后两个百分比值是唯一一个,可以通过手动使用滑块来更改。 那个滑块有没有人遇到过同样的问题? 谢谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您必须将值设置为min而不是百分比。您应该看一下元素,看看哪些值是有效的。通常,元素上有一个max<input id="sum_slider" class="input-range js-inv-calc-input-sum-range js-input-range" type="range" name="investmentsum" min="20000" max="150000" value="20000" step="1000" title="Investitionsbetrag" style="background: -webkit-linear-gradient(left, rgb(255, 196, 0) 0%, rgb(255, 196, 0) 0%, rgb(119, 119, 119) 0%) no-repeat;"> 属性。

注意元素上的那些属性

20000

因此,对于您的元素,您设置的值必须介于150000cy.get('input[type=range]') .invoke('val', 20001) .trigger('change') 之间。以下应该起作用:

textCount