赛普拉斯:设置属性值

时间:2017-11-06 07:30:29

标签: javascript cypress

我刚刚开始探索赛普拉斯并遇到了这样一个问题:是否可以在JavascriptExecutor的帮助下选择具体属性并像Selenium一样更改其值?例如,让我们采用这段简单的代码

input id="mapsearch" type="textbox" class="form-control" name="address" test=""

是否可以获取测试属性并指定我自己的值?

1 个答案:

答案 0 :(得分:11)

是。您可以在赛普拉斯测试中使用JavaScript执行任何操作。对于上面的html,您可以使用.invoke()

在赛普拉斯中执行此操作
cy.get('input[test]')
  .invoke('attr', 'test', 'my new value')
  .should('have.attr', 'test', 'my new value')

赛普拉斯使用jQuery,所以你可以像这样在jQuery中调用任何函数。您可以使用.then()生成输入后使用纯JavaScript:

cy.get('input[test]').then(function($input){
    $input[0].setAttribute('test', 'my new value')
  })
  .should('have.attr', 'test', 'my new value')