Sta*_*art 14 automation cypress
我想通过 XPATH/ID 而不是默认的 cypress 定位器点击一个元素,这可能吗?
在 selenium 中,我可以通过 XPATH 使用 find 元素,例如:
d.findElement(By.id("category")).click();
Run Code Online (Sandbox Code Playgroud)
在赛普拉斯中,它就像:
cy.get('#hdtb-msb-vis > :nth-child(3) > .category').click()
Run Code Online (Sandbox Code Playgroud)
我可以通过ID点击吗? (它在硒中看起来更好!)
d.findElement(By.id("category")).click();
Run Code Online (Sandbox Code Playgroud)
VS
cy.get('#hdtb-msb-vis > :nth-child(3) > .category').click()
Run Code Online (Sandbox Code Playgroud)
Dan*_*any 23
答案已过时,从版本 11 开始,Cypress 核心存储库就包含了这些xpath
命令。
安装和使用是
将 XPath 命令添加到 Cypress.io 测试运行程序
npm install -D @cypress/xpath
Run Code Online (Sandbox Code Playgroud)
yarn add @cypress/xpath --dev
Run Code Online (Sandbox Code Playgroud)
然后包含在您项目的支持文件中
require('@cypress/xpath');
Run Code Online (Sandbox Code Playgroud)
安装后,您的cy
对象将具有xpath
命令。
it('finds list items', () => {
cy.xpath('//ul[@class="todo-list"]//li').should('have.length', 3);
});
Run Code Online (Sandbox Code Playgroud)
小智 17
在 Cypress 中,它的工作方式如下:
cy.get('button[id="category"]').click()
Run Code Online (Sandbox Code Playgroud)
请注意,我在这里仅以按钮为例,您应该将其替换为元素的标签:div、select、textarea 等...
我认为,可以plug-in
按照 Cypress 网站的建议添加一个,请参阅以下链接https://docs.cypress.io/plugins/#content
。如果您参考自定义命令部分,您可以看到cypress-xpath
哪些将您带到以下 github 链接
https://github.com/cypress-io/cypress-xpath
npm install -D cypress-xpath
Run Code Online (Sandbox Code Playgroud)
然后包含在您项目的 cypress/support/index.js 中
require('cypress-xpath')
Run Code Online (Sandbox Code Playgroud)
示例用法如下:
it('finds list items', () => {
cy.xpath('//ul[@class="todo-list"]//li')
.should('have.length', 3)
})
Run Code Online (Sandbox Code Playgroud)
请在安装插件并更新support/index.js
文件后尝试。
归档时间: |
|
查看次数: |
32298 次 |
最近记录: |