typescript - Làm thế nào để tôi tải lên một tệp tại đường dẫn tương đối với Playwright và TS?
Tôi đang cố gắng tải một tệp lên trong một bài kiểm tra Playwright được viết bằng TypeScript.
const fileWithPath = './abc.jpg';
const [fileChooser] = await Promise.all([
page.waitForEvent('filechooser'),
page.getByRole('button', { name: 'Add a Photo' }).click(),
]);
await fileChooser.setFiles([fileWithPath]);
Tuy nhiên, điều này không hiệu quả; tôi nhận được một lỗi:
Error: ENOENT: no such file or directory, stat './abc.jpg'Nếu tôi thay đổi đường dẫn tệp thành đường dẫn tuyệt đối thì nó hoạt động:
const fileWithPath = '/Users/private/d/ionic/tests/playwright/optional/abc.jpg';Tuy nhiên, tôi phát triển trên macOS và chạy các bài kiểm tra tự động trên Linux, vì vậy tôi thực sự muốn cam kết tệp hình ảnh (abc.jpg) vào cùng thư mục với bài kiểm tra và sau đó sử dụng đường dẫn tương đối để tham chiếu nó theo cách không phụ thuộc vào hệ điều hành.
Làm thế nào tôi có thể làm điều đó?
Câu trả lời #1
Dựa trên gợi ý từ @jonrsharpe và tài liệu hướng dẫn trình chọn tệp, đây là giải pháp hoạt động mà tôi đã nghĩ ra:
import * as path from 'path';
const fileWithPath = path.join(__dirname, 'abc.jpg');
const [fileChooser] = await Promise.all([
page.waitForEvent('filechooser'),
page.getByRole('button', { name: 'Add a Photo' }).click(),
]);
await fileChooser.setFiles([fileWithPath]);
