Getting "cannot set property name of which has only a getter"

Viewed 8459

The scripts for the tests worked flawlessly not too long ago. To my knowledge, the only change that has been made is the URL.

Here's one of the tests in question. Note we have swapped out the URL with a fake one.

We have tried doing a fresh install of Cypress. Nothing in our support file, etc.

Nowhere in the code have I tried to set a property. Either way, it seems to throw the error before running my tests.

The error is:

"cannot set property name of which has only a getter"

error screenshot

/// <reference types="cypress" />
describe('Sign up', () => {
  it('Sign up - fill details', () => {

    //make new account
    cy.visit('https://my.website/sign-in')

    //     cy.wait(2000)
    //     cy.contains('Sign-up').click()

    //     fill form 
    //     cy.get('#firstName').type('userName')
    //     cy.get('#lastName').type('userLastName')
    //     cy.get('#mobile').type('+61000000000)
    //     cy.get('#email').type('email@gmail.com') 
    //     cy.get('#password').type('ASDfgh_123')

    //     //cy.contains('Next').click()

  })
})

Stack trace:

TypeError: Cannot set property name of  which has only a getter
    at onError  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:156647:18) From previous event:
    at Object.run  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:170479:13)
    at Object.run  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:156658:15)
    at $Cy.cy.<computed> [as visit]  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:157812:17)
    at __stackReplacementMarker  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:157121:13)
    at Context.runnable.fn  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:158036:21)
    at callFn  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:112788:21)
    at  Test.../driver/node_modules/mocha/lib/runnable.js.Runnable.run  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:112775:7)
    at  https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:164502:28 From previous event:
    at Object.onRunnableRun  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:164487:17)
    at $Cypress.action  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:154145:28)
    at Test.Runnable.run  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:162234:13)
    at Runner.../driver/node_modules/mocha/lib/runner.js.Runner.runTest  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:113447:10)
    at  https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:113573:12
    at next  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:113356:14)
    at  https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:113366:7
    at next  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:113268:14)
    at  https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:113334:5
    at timeslice  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:107260:27)
1 Answers

We came across this same issue just today and solved it, albeit a hacky way, by setting chromeWebSecurity: false in the cypress.json

This is what our cypress.json looked like to get it working.

{
  "chromeWebSecurity": false
}

The spec file with the test looks like this:

describe('Single Sign On Test', () => {
  it('Visit Single Sing On Page', () => {
    cy.visit('https://example.com/signin')
    cy.get('#username').should('be.visible').type('username')
    cy.get('#next').click()
    cy.get('#password').should('be.visible').type('password')
    cy.get('#signin').click()
  })
})
Related