【发布时间】:2021-01-07 14:19:15
【问题描述】:
以下代码在测试中运行良好。
cy.get("table").find(`tr[data-index=0] > :nth-child(1)`).then($td => {
cy.get("input").type($td.text().trim() + "{enter}");
});
但是这个,函数中的相同代码,不会
const getResult = () => {
cy.get("table", {timeout: 60000}).find(`tr[data-index=0] > :nth-child(1)`, {timeout: 60000}).then($td => {
return $td.text().trim()
});
}
it("query", () => {
cy.get("input").type(getResult() + "{enter}");
})
我对柏树中的then() 缺少什么?
目的当然是获取表格第一个单元格的内容,并在input字段中输入。
编辑:
遵循@jean-smaug 的建议,我尝试了这个invoke/as
但我收到错误Cannot read property 'text' of undefined。实际上,该函数位于不同的 ES 模块中,并且上下文不同。代码:
// different ES module
export const getResult = () => {
cy.get("table").find(`tr[data-index=0] > :nth-child(1)`).invoke("text").as("text")
}
// test
getResult("opencga-file-grid")
cy.get("input").type(this.text + "{enter}");
【问题讨论】:
-
文档中的这个页面可能有用docs.cypress.io/guides/core-concepts/… 你不能像这样从 cy.get() 返回
标签: javascript cypress end-to-end