4

Cucumber テストのローカル ストレージを無効化または削除しようとしています。

私は次のことを試しました:

page.driver.execute_script("localStorage.clear()")

しかし、次のエラーが表示されます

 One or more errors were raised in the Javascript code on the page. If you don't care about these errors, you can ignore them by setting js_errors: false in your Poltergeist configuration (see documentation for details).

  SECURITY_ERR: DOM Exception 18: An attempt was made to break through the security policy of the user agent.
  at phantomjs://webpage.evaluate():1
  at phantomjs://webpage.evaluate():1
  at phantomjs://webpage.evaluate():1
  at phantomjs://webpage.evaluate():1 (Capybara::Poltergeist::JavascriptError)
4

2 に答える 2

1

まったく同じエラーが発生していました。問題は、最初にページにアクセスせずにスクリプトを実行しようとしたことです。上記のジャスティンが説明したように、これによりエラーがスローされます。

shared_context '@user is logged in' do
  before do
    # visit '/'
    credentials = @user.create_new_auth_token
    token = credentials['access-token']
    page.execute_script "localStorage.setItem('token', '#{token}')"
  end
end

これは機能します:

shared_context '@user is logged in' do
  before do
    visit '/'
    credentials = @user.create_new_auth_token
    token = credentials['access-token']
    page.execute_script "localStorage.setItem('token', '#{token}')"
  end
end
于 2015-12-06T15:34:04.710 に答える
0

私がすることはこれです:

  visit '<the_url_needed>'
  page.execute_script('if (localStorage && localStorage.clear) localStorage.clear()')

それが役立つことを願っています。

于 2014-05-09T14:27:16.663 に答える