protractor Migrations
Assertions
| Before | After | 
|---|---|
expect(by.className('thisClass').count()).toEqual(3) | cy.get('.thisClass').its('length').should('equal', 3) | 
expect(testPageObject).toBe({ id: test }) | testPageObject.should('deepEqual', { id: test }) | 
expect(by.css('.list').count()).toEqual(3) | cy.get('.list').its('length').should('equal', 3) | 
expect(by.css('.list').count()).not.toEqual(5) | cy.get('.list').its('length').should('not.equal', 5) | 
expect(element(by.css('.list')).isDisplayed()).toBeFalse() | cy.get('.list').should('not.be.visible') | 
expect(by.className('thisClass').isPresent()).toBeFalse() | cy.get('.thisClass').should('not.exist') | 
expect(element(by.className('test-checkbox').isSelected())).toBe(true) | cy.get('.test-checkbox').should('be.selected') | 
expect(element(by.className('input-field').isEnabled())).toBe(false) | cy.get('.input-field').should('not.be.enabled') | 
expect(element(by.id('user-name')).getText()).toBe('Joe Smith') | cy.get('#user-name').should('have.text', 'Joe Smith') | 
element.all(by.css('.list-item')).get(3) | cy.get('.list-item').eq(3) | 
Browser methods
| Before | After | 
|---|---|
browser.wait(5000) | cy.wait(5000) | 
browser.getTitle() | cy.title() | 
browser.getCurrentUrl() | cy.location('href') | 
browser.setLocation('faq') | cy.get('#faq').scrollIntoView() | 
browser.refresh() | cy.reload() | 
browser.debugger() | cy.debug() | 
browser.findElement(by.css('.list')) | cy.get('.list') | 
browser.driver.findElement(by.css('.another-list')) | cy.get('.another-list') | 
browser.restart() | Removed from file. | 
browser.restartSync() | Removed from file. | 
browser.ignoreSynchronization = true | Removed from file. | 
browser.manage().timeouts().implicitlyWait(15000) | Removed from file. | 
browser.waitForAngular() | Removed from file. | 
browser.waitForAngularEnabled() | Removed from file. | 
browser.pause() | Removed from file. | 
browser.getId() | Removed from file. | 
Interactions
| Before | After | 
|---|---|
element(by.className('thisClass')).sendKeys('type something') | cy.get('.thisClass').type('type something') | 
browser.actions().click(element(by.tagName('button'))).perform() | cy.get('button').click() | 
browser.actions().mouseMove(element(by.id('test-id'))).perform() | cy.get('#test-id').scrollIntoView() | 
browser.actions().doubleClick(element(by.className('list-item'))).perform() | cy.get('.list-item').dblclick() | 
element(by.id('test')).takeScreenshot() | cy.get('#test').screenshot() | 
el.takeScreenshot() | el.screenshot() | 
Selectors
| Before | After | 
|---|---|
by.className('thisClass') | cy.get('.thisClass') | 
by.id('my-id') | cy.get('#my-id') | 
by.css('.my-class') | cy.get('.my-class') | 
by.name('field-name') | cy.get('input[name="field-name"]') | 
by.model('user.name') | cy.get('[ng-model="user.name"]'); | 
by.binding('value') | cy.get('[ng-bind="value"]') | 
by.options('n in name') | cy.get('[ng-options="n in name"]') | 
by.linkText('Google') | cy.contains('a', 'Google') | 
by.partialLinkText('Goo') | cy.contains('a', 'Goo') | 
by.cssContainingText('.my-class', 'text') | cy.contains('.my-class', 'text') | 
by.buttonText('Save') | cy.contains('button', 'Save') | 
by.partialButtonText('Save') | cy.contains('button', 'Save') | 
by.tagName('h1') | cy.get('h1') | 
by.xpath('//ul[@class="todo-list"]//li') | cy.xpath('//ul[@class="todo-list"]//li') | 
$('this-example') | cy.get('this-example') | 
$('example').$$('li') | cy.get('example').find('li') | 
$$('li').get(1) | cy.get('li').eq(1) | 
element(by.css('.an-element')) | cy.get('.an-element') | 
element.all(by.css('.list-items')) | cy.get('.list-items') | 
el.getAttribute('abc') | cy.get(el).invoke('attr', 'abc') | 
testElement.getDriver() | testElement.parent() | 
$('.parent').getWebElement() | cy.get('.parent') | 
element(by.css('.my-class')).getWebElement() | cy.get('.my-class') |