没有什么对我有用。如果我使用 cy.request(),我无法使用它发送包含文本和图像的表单数据。所以我必须走XHR路线。因此,在我的 command.js 中,我使用以下代码来创建命令:-
Cypress.Commands.add("formrequest", (method, url, formData, done) => {
cy.window().then(win => {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.open(method, url, false);
xhr.setRequestHeader("accept", "application/json");
xhr.setRequestHeader("access-token", accesstoken);
xhr.setRequestHeader("client", client);
xhr.setRequestHeader("expiry", expiry);
xhr.setRequestHeader("token-type", tokentype);
xhr.setRequestHeader("uid", uid);
xhr.setRequestHeader("Accept-Encoding", null);
xhr.onload = function() {
done(xhr);
};
xhr.onerror = function() {
done(xhr);
};
xhr.send(formData);
});
});
});
Run Code Online (Sandbox Code Playgroud)
现在,当我调用它时,我将首先构造一个 BLOB,然后在我的 formdata 中使用它以稍后发送 XHR 请求。像这样: -
it.only("Test XHR", () => {
cy.AppLogin();
cy.fixture("/images/clients/Golden JPEG.jpeg", "binary").then(imageBin => {
// File in binary …Run Code Online (Sandbox Code Playgroud)