赛普拉斯:设置属性值

R.R*_*.Ro 8 javascript cypress

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

input id="mapsearch" type="textbox" class="form-control" name="address" test=""
Run Code Online (Sandbox Code Playgroud)

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

Jen*_*ane 13

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

cy.get('input[test]')
  .invoke('attr', 'test', 'my new value')
  .should('have.attr', 'test', 'my new value')
Run Code Online (Sandbox Code Playgroud)

赛普拉斯使用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')
Run Code Online (Sandbox Code Playgroud)