Cypress click element by ID / XPATH / Name?

一世执手 提交于 2020-07-18 12:39:07

问题


I want to click on an element by XPATH / ID and not the default cypress locator, is it possible?

In selenium I can use find element by XPATH for example:

d.findElement(By.id("category")).click();

In Cypress it's like:

cy.get('#hdtb-msb-vis > :nth-child(3) > .category').click()

Can I click by ID? (It looks better in selenium!)

d.findElement(By.id("category")).click();

VS

cy.get('#hdtb-msb-vis > :nth-child(3) > .category').click()

回答1:


In Cypress, it works like this:

cy.get('button[id="category"]').click()

Notice that I just used button as an example here, you should replace that with the label of your element: div, select, textarea, etc...




回答2:


I think, it is possible by adding a plug-in as suggested in Cypress website, please refer the following link https://docs.cypress.io/plugins/#content. If you refer the custom command section you could see cypress-xpath which takes you to following github link https://github.com/cypress-io/cypress-xpath

npm install -D cypress-xpath

Then include in your project's cypress/support/index.js

require('cypress-xpath')

Sample usage given below:

it('finds list items', () => {
  cy.xpath('//ul[@class="todo-list"]//li')
    .should('have.length', 3)
})

Please try after installing the plug-in and updating the support/index.js file.




回答3:


#hdtb-msb-vis is an ID-selector and .category is a class-selector. But you should be able to select purely by the class-selector

cy.get('.category')
  .click()

But if that class is not unique you can click it via the ID and then the class:

cy.get('#hdtb-msb-vis')
  .find('.category')
  .click()



回答4:


The first question contains two different selectors, the first (selenium) look for an id category and the second for a class category.

In fact :

d.findElement(By.id("category")).click();
==
cy.get('#category').click()

So yes you could select an element by it's ID !

If (and i don't think) you want to have others possibility for selecting your elments look for jquery selector (jquery is exposed in cypress)



来源:https://stackoverflow.com/questions/56886556/cypress-click-element-by-id-xpath-name

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!