问题
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