web-dev-qa-db-ja.com

サイプレス:属性値を設定

サイプレスの調査を開始したばかりで、そのような問題に遭遇しました。具体的な属性を選択し、SeleniumのようにJavascriptExecutorを使用してその値を変更することは可能ですか?たとえば、この簡単なコードを見てみましょう

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

テスト属性を取得して自分の値を割り当てることはできますか?

12
R.Ro

はい。 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')
_
13