首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在cy.xpath中使用cy.origin时出错

在cy.xpath中使用cy.origin时出错
EN

Stack Overflow用户
提问于 2022-06-01 11:23:38
回答 2查看 658关注 0票数 2

我用柏树来测试一个网站。

当我在cy.origin()中使用xpath时,它不起作用。

代码语言:javascript
运行
复制
it('t1', function() {
    cy.origin(('BaseUrl'), () => {
        cy.visit('/profile')
        cy.xpath("//input[@name='username']").type('user')
        cy.xpath("//input[@name='password']").type('pass')
        cy.xpath("//button[@type='button']").click()
    })
})

错误:

代码语言:javascript
运行
复制
TypeError
cy.xpath is not a function

Note that it works correctly outside cy.origin()

EN

回答 2

Stack Overflow用户

发布于 2022-06-02 09:08:45

TLDR:坚持在cy.origin()中使用标准的柏树命令。

这是当前cy.orgin()的一个限制,实际上,任何自定义命令都必须特别处理,而cy.xpath()是一个自定义命令。

请参阅回调限制

目前也不可能在回调中使用require()或动态导入()。由于这个限制,它不能在回调中使用npm包或其他第三方库,因为没有引用它们的机制。此功能将在Cypress.的未来版本中提供。 虽然第三方包严格不可用,但可以在cy.origin()回调之间重用自己的代码。解决方法是在前块中的次要源文件中创建自定义Cypress命令:

代码语言:javascript
运行
复制
before(() => {
  cy.origin('somesite.com', () => {
    Cypress.Commands.add('clickLink', (label) => {
      cy.get('a').contains(label).click()
    })
  })
})

it('clicks the secondary origin link', () => {
  cy.origin('somesite.com', () => {
    cy.visit('/page')
    cy.clickLink('Click Me')
  })
})

但是您不能在cy.xpath()中使用这种模式,因为您目前需要require('cypress-xpath'),而这不能在cy.origin()中完成。

A解决方案--

  1. 导航到/node_modules/cypress-xpath/src/index.js
  2. 复制全部内容
  3. 添加一个新的支持命令文件:/cypress/support/xpath.js
  4. 将其添加到文件中,粘贴在复制的代码中。 在( () ) => { cy.origin('somesite.com',() => {/您的跨源URL在这里//粘贴这里的代码来自/node_cy.origin/cypress-xpath/src/index.js}}之前)
  5. xpath.js导入/cypress/support/commands.js

现在,cy.xpath()将在任何测试中在cy.orgin()中工作。

票数 1
EN

Stack Overflow用户

发布于 2022-06-01 20:55:55

检查非xpath是否有效。

代码语言:javascript
运行
复制
cy.origin(('BaseUrl'), () => {
  cy.visit('/profile')
  cy.get("input[@name='username']").type('user')
  ...

如果没有,则可能没有正确设置experimentalSessionAndOrigin标志。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72460992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档