我正在与 Cypress 进行斗争,以实现基于反应的网站上的任何拖放操作。Cypress 仪表板中的操作不会失败,但项目根本不会被拖动。
我拥有的是一组 div,它们是“在菜单中”的页面列表(因此它们对用户可见),另一组 div 是“不在菜单中”(因此它们对用户不可见) )。我想要做的是将“不在菜单中”页面移至“在菜单中”部分。
这些是网站中的元素:
“可拖动”项目:
<div data-testid='pages-section-not-in-menu-list' data-rbd-droppable-id="notInMenu" data-rbd-droppable-context-id="0" class="draggable-place">
<div class="page1">Page1</div>
<div class="page2">Page2</div>
<div class="page3">Page3</div>
</div>
Run Code Online (Sandbox Code Playgroud)
“可放置”区域:
<div data-testid='pages-section-in-menu-list' data-rbd-droppable-id="inMenu" data-rbd-droppable-context-id="0" class="droppable-place">
</div>
Run Code Online (Sandbox Code Playgroud)
我的代码:
public dragAndDropPagesToInMenu(): void {
const dataTransfer = new DataTransfer();
cy.wait(3000);
cy.log("Dragging one page to `In Menu` section");
cy.get("div[class='page3']")
.first()
.trigger('dragstart', { dataTransfer });
cy.get("div[data-testid='pages-section-in-menu-list']")
.eq(0)
.trigger('drop', { dataTransfer });
cy.get("div[class='page3']")
.last()
.trigger('dragend');
}
Run Code Online (Sandbox Code Playgroud)
我还尝试了以下解决方案,但到目前为止没有一个有效:
有任何想法吗?
我有一个赛普拉斯框架,我正在其中测试用户页面(他们可以在其中与页面交互,下载文件,更新他们的个人资料等),以及该用户页面的管理页面(单独登录,实际上可以作为管理员,修改用户页面中的内容)。因此,我有三个配置文件:
cypress.config-admin.ts,其中我有管理页面的 baseUrl(如www.mypage.admin.com)。我在文件中传递 --config-file 标记package.json以进行无头测试。cypress.config-user.ts我有用户页面的 baseUrl ( www.mypage.com)。我在文件中传递 --config-file 标记package.json以进行无头测试。cypress-config.ts,我用它通过赛普拉斯仪表板手动运行测试。有时我需要在同一个测试用例中使用两个 URL(以管理员身份执行某些操作,以用户身份进行验证)。
我的问题是,当我使用 时Cypress.config().baseUrl,它只会显示 上的值cypress.config.ts。我已经尝试了多种方法,但还没有找到在admin或user配置文件上调用 baseUrl 的方法。
https://docs.cypress.io/api/cypress-api/config似乎建议我可以传递配置文件的名称,但我无法做到这一点=/
有任何想法吗?